From ff65dc2b0359052503c1a47e0edecc3ea7bb884e Mon Sep 17 00:00:00 2001 From: AWSHurneyt Date: Fri, 12 Jul 2024 11:35:58 -0700 Subject: [PATCH] [Backport 2.x] PR 1142 & PR 1156 (#1158) * adds new tif source config type - url download (#1142) * adds new tif source config type - url download Signed-off-by: Surya Sashank Nistala * set up create default tif configs Signed-off-by: Surya Sashank Nistala * address review comments Signed-off-by: Surya Sashank Nistala * add check to block create and delete operation url download type tif source configs Signed-off-by: Surya Sashank Nistala --------- Signed-off-by: Surya Sashank Nistala * Adjusted IOCTypes usage. (#1156) * Removed TODOs. Signed-off-by: AWSHurneyt * Refactored how STIX2IOCGenerator creates IOCs of specific types. Signed-off-by: AWSHurneyt * Added additional integration tests. Signed-off-by: AWSHurneyt * Changed IOCType usage as it's no longer an enum in SA commons. Signed-off-by: AWSHurneyt * Updated jar file. Signed-off-by: AWSHurneyt * Fixed unit tests. Signed-off-by: AWSHurneyt * Fixed tests. Signed-off-by: AWSHurneyt * Refactored build.gradle to exclude redundant dependencies from SA commons, instead of the SA commons jar being generated withhout those dependencies. Signed-off-by: AWSHurneyt * Updated jar. Signed-off-by: AWSHurneyt * Reverted changes to build.gradle. Signed-off-by: AWSHurneyt * Updated jar. Signed-off-by: AWSHurneyt * Fixed tests. Signed-off-by: AWSHurneyt * Fixed tests. Signed-off-by: AWSHurneyt * Fixed tests. Signed-off-by: AWSHurneyt * Fixed IOCType usage. Signed-off-by: AWSHurneyt * Fixed log message. Signed-off-by: AWSHurneyt * Fixed tests. Signed-off-by: AWSHurneyt * Addressed PR feedback. Signed-off-by: AWSHurneyt --------- Signed-off-by: AWSHurneyt * Fixed jar. Signed-off-by: AWSHurneyt --------- Signed-off-by: Surya Sashank Nistala Signed-off-by: AWSHurneyt Co-authored-by: Surya Sashank Nistala --- security-analytics-commons-1.0.0.jar | Bin 17260104 -> 17260146 bytes .../SecurityAnalyticsPlugin.java | 4 +- .../model/DetailedSTIX2IOCDto.java | 5 +- .../securityanalytics/model/STIX2IOC.java | 12 +- .../securityanalytics/model/STIX2IOCDto.java | 7 +- .../services/STIX2IOCConnectorFactory.java | 5 +- .../services/STIX2IOCConsumer.java | 5 +- .../services/STIX2IOCFeedStore.java | 8 +- .../services/STIX2IOCFetchService.java | 92 +++- .../common/SourceConfigDtoValidator.java | 15 +- .../threatIntel/common/SourceConfigType.java | 4 +- .../iocscan/service/SaIoCScanService.java | 5 +- .../model/DefaultIocStoreConfig.java | 12 +- .../threatIntel/model/IocUploadSource.java | 4 - .../threatIntel/model/Source.java | 10 +- .../threatIntel/model/UrlDownloadSource.java | 117 ++++ .../DefaultTifSourceConfigLoaderService.java | 180 +++++++ .../SATIFSourceConfigManagementService.java | 52 +- .../service/TIFJobUpdateService.java | 2 +- .../service/ThreatIntelFeedDataService.java | 2 + .../TransportIndexTIFSourceConfigAction.java | 8 + ...TransportSearchTIFSourceConfigsAction.java | 47 +- .../util/ThreatIntelFeedParser.java | 20 +- .../transport/TransportListIOCsAction.java | 19 +- .../securityanalytics/TestHelpers.java | 2 +- .../model/SATIFSourceConfigTests.java | 2 +- .../SATIFSourceConfigRestApiIT.java | 510 +++++++++++++++--- .../SourceConfigWithoutS3RestApiIT.java | 18 +- .../ThreatIntelMonitorRestApiIT.java | 16 +- .../util/STIX2IOCGenerator.java | 43 +- 30 files changed, 1059 insertions(+), 167 deletions(-) create mode 100644 src/main/java/org/opensearch/securityanalytics/threatIntel/model/UrlDownloadSource.java create mode 100644 src/main/java/org/opensearch/securityanalytics/threatIntel/service/DefaultTifSourceConfigLoaderService.java diff --git a/security-analytics-commons-1.0.0.jar b/security-analytics-commons-1.0.0.jar index dd271f4eb803f06bcab74a7f2ab9ae763095fd86..9ae59c9c2083d62676358611474e851e72845672 100644 GIT binary patch delta 300488 zcmZ6yV{oR?5;Yo4CU|4pww+9D+qUhz6TPuDv28mOb7I@JGvS?czOU-ubDyfGx@+(K zbM@-Adv}j^Wy9S4`w^66A)(;Fz+hm&f;27?5GW!4V>o3X1OJ&|lK+}g`v00G!T*>f zEO3ecS|f1f|JcSR@N$U%yTF@t1qGk9X$JT|8&Ij>|J{&>mP7n^QY*|WnKT;$49pig zX;y+MZHNCJHqD>^9sn#>*HxYWf&STY%2A>Op#iQe9Nz+i0`*N72OnCpsXw|eHdc{j z7?l!>Qa*jx(D{~=mzV#o5P!M^9DaAG0V#9S^>2^sRL-JO5dbKwt#7FD$S|;kty0)r zy2wRGEBe>JS@l;#I6Es1IYoF|fBX!?G7I)A+|XG|OC?R}(L&1Oq`m0#7-v)sdI!b9 z%)rd!w9%0D8v1OF1xL(d9Kbb{^V(e2mVMkFV)0q7)WE@V2Mj!*HbhX*TuMW3!H0mP)cL65k`jJxCRwoW~w<3Gk*LA4kxl5&THQg5|`?!dkqL&i9JIGzn))3eWGf z;T_hQ-(v4Vu%9O#TlFBUnWS>5OB9YygwF3s9lj;@Sx5|w(1D6~fj|ZR4 zi&XilE$fHltMNW7TP!XFTw`?n`)){SFW-^pF*f09Bb9bo)TZ?-WsV<@UJA}Q1vb4b z?rhw%&q}z*=Gfi6QVBVY%X3?Ks?7o@`j}qC-?IzdA#gT^xUJ!u@ba06_DEK+ zieeMCN`VBT2}fpm6N&za#WMk^b!}?Nrp1o&u_)_EH|v*FR;fA~ZDC_S6qi#hVsCIE z_BIOGo%iVu<_;_mkh~61qWQg@ipq(JdiHQ&l@xB<&7#Sx@voEYaM?)WMED$%sQpDg z{o-A8<0InpzTN%I+136Ndde7|8kbKL-ktOvDqTRN$2(;AMR5&23|k|v7g2$Z5*p=r zMjmHSq&MuLad-Rg@BcSS{sUxezEEe@e?Sg{0s|9Dn#EvE+JHs_I?gGf2QWH*y8y#+ z2r@m(l1ZPVpT&kGAq$U?CXm1$+bfmT)J~gAY@y#Z_pHwEj}?mHKETPv_O$(9v7B8$I?11@g^`ZKeusNG9*yTYkBfg zV~tdC4QZuZkIbv9zv1&@4r; ztvV0aICQZC#a&KiEyZUp?B)TfR=)jw-YmL5&6G#wgy~VdNu_oWuY!z&n-CKBq!s!E zMR+COA*}(=C(++}$amRRvUYQo-g`3;QiOyBC8c&mfA3z;(@gge?HKQr{!UgvF~&3Y z0Wa@r_5fXs3Dw9_M=az+{bIe`!pz2sxKJV4EB6ytuoCJ-6&#pUJ%BW4K&3vPtt|>I z9rb)7Q?2q;=u-&5NP|n1Qf+jh{!umfZGwy+(d>}we_`d|0r~skx7Mo)6MF_3m#L$LU*WP4 z5(Re$!T+FT(P>pbh`dJG$#?8`pY1rs!*+kaoaP92#7qQ23V;oy=0!Fe)$tH-so1D; z9@1z%#ML}+Il7=JDY)jz&`DCCV5V=R1mbB#oZrD67k3rY##*EU=Dcpr15Dd{>uv6J6lM{Nxp0i}M^h zVom*l*N}Jdy(@8NY+0TC?7NP&&RGSHZKk=K<2s2{xp z?I434Z2~g@h*}=)OEgbymf3t#Su@;KFwTgktX^!uGXQan52lPQ-me<`!tAL!3DQ-L z-s23eWu9c-*7!@lVZ74D3i(xbSMf_LNmITeRl`Pl@Q#N(q;o+ZucV>)zQ~k9c4N0C zKb>E@ghzTaDcmP zMAjmu6ZOnFs9B6*aQKZjVdUkT9?ls&G}LOKW+y**1My96Xs3S}HP&ycMdBQQ)f8FI z?VjoMsn#JygKFJX#358%Lv{-xyQi1os!gd#YgbYLE_QeS{+xzQ zu(d^iN2gb*J8K!&WJf7)T@|1aVNg(J8b0ZIVnB=(fO`N$>}Svuz>viNuqmzBB^+;~ z@Pi0Mc}1;qB>+gLIBxzB+rg5A0U)nX4%BCJK{6lc+}=0F9ja3t`#j?P`t#Dp_?#eP zxPVtk6$_ICsN3K#xilD{+}!QpkX%wc&L1CW zfV8HG7z|3<4oqq?;24^hOe@aKpP>eY4xt>?Xy`Y52nQXI;_iC1&`mC}dq_gBChlJv zm0g&N9mSl%9;`c4@~z_t|G=uZsSoJ?4T&3DczgtwZ(v|N|1=8!znI`jQ{cUa24-v6 z`l5-W2T-LsBs$0-aJ5UfwOSjuFTgdS%g~^%6iJB`iC520vadF*B6Q;Al?jD>^?s*^ z6DNAiBznjBL?j}bw&S$_NiFENn(lg(;+h1ZYrLj|VS}wEAVb-ZRt#!%N zt?aS(%GhPcjlHx+D5a%m5aLobu!jRJG@P@`^w_R(fC@!lDeW?OSl&75q*owmTa4mK zj=nFOZKcYP1Xshgl&{1R)bcC@s>)rnvRr*5WT1YD-`y!u+iDPt(Vcgw1}-AE2)&IW z%Wu0~KzXo5haj5CGo44iG0bBuqOGb_uDa!pXWIFLW!l zVZE-a>tRfjJHfZ%9Ay?z9L}r1q$eSqC&<^Nk+-AR_t&!GqMt?|55_S|AM=gRPaIT` z>DxwAH&@j)cUOGxH&9Zmy(YH8Bqxz7?|@xysoke;s<{VKMO%n95U$~H!KUAwJ8zs=(M zZSpNk?V4B%D7k1Mz*RqHk1Wkf2Z(!n7k*;ZwkRfazw$jgdRF|xvHV5+Qi}+u@EMVA z>ldA#S*yPdXY1)P+!FwUxU3!`ORcZm(d3XmI@i!sKj(UG{a^a@)7x3*QqwbS_wARO zZHonWm%lmnJ2-XW6qEjDrqtJbcv%{<+HyYYGFsyYm~zYY0QE0aLkKeS6UOVrx$Kqg zI8sA&Q&Y#T66IBPYiLg6aqiD4Q$DpnJ}5bNheFSJ)v!*VsPiSP;_lqWj)%J;96?gn zwe!@M_c@Iwfq`Re-I9l>8vUNU^FHfJaTZh&(gSeY#cE^L?VvUr88;60mym`06Rgl< ztdMBL=5bRH@cjDtYuBlplwa7n*^0jn^-qhn+}KvUs=qA~34R_pN`9+Gp92qtRV%!q zDKa4I31x%Sr#y-g&E9Pmqo7j%fuP`&fkX%Dfprqf2i2O0icsG2bt!y&K7COB*dXXo zVk!SU{NXuJCc6hReD0arg1=sg9e{{|#8q@=7{ME~&m*L)SjzVil@I5f7L`9C{9oyyP2k>4Ym5p`CX?^GDeQiE()w>j)vrk%o7wL z1iq@p2^OoC&&QqTyW>QXI|ZZWp|$>K!Q`4bou(C2Ijwnfg1iizL5$e??jf4rX%*Xt zl)#}=tjGThIXBITx{Sp<(RXO0ODv}aQN5$4L7NNv2i(H~^?WARl-89_bxMuZbE*CY z|ILh`Zl^jzm`t~tIr_j7L_Bgc+lIl_u$ptg{ZNOBbb#`N|1R>UDR z=JO<(K;55w$1ux{!zpd6%s>a9;J{<(*IvFR{BBp5QBhmqGQfV?Jieu)b5dczsI1#| zD!#nnhlGxZOlS}uKzjaGFUq*Rj3e$Z%`(B&)1$`q3ae=Ul(9j7P$U2o=LiUid*$>) zJln<6s(FizpFv@B%hd~6tps1m)I%*xxiY`h7~#3Y$(3EmJKTgWrE;&d0SV zl#ZKcz1B5=Rt>TyUEUa#ZId^CB?+U{N@rLx7KNM0+FWYrVoPcZ2E9s5HjN0`B=wR8 zpwN;_owotu>AUr={%K*N zxlXqQOXl&FC2Xs*=e3vWmb48LRgt?0{_{T8QFoZY(gAZ}_3eE9KeM`#%dRGqV5dPd z>0Mqb=+eY7d~NU``36qusKV%8L6MH2_dt4(FS)8Rz4!~Dh4O_e+0ZM+uId5y48sJ1 z=nWE>Tf{4|3r;BE{Aws23E&H#|1MR0*(_@|{pG4JqMVG#(4TyQ;gE!n)u0#?uKF3Y zBJ3eS5fGt^H7Y)=L(008WH=TX7te->N>+u3Wpw;IBa;YAcpx!>YH20p5QR{(;~njP zffbuzJIDGjanmI^)5rotnu<>0#kN#v<~V7D#X>DpAQvGkPfc|omX3=R%H5{nFKmlD8%mJN}C8rVi9oh)Oe zXk5__zqIZBZ%Mkgp^?YfOFGIXBZ=X%J0}DrHpLmS{s2i&Zmf)wb~C(Gs;t%8N|OOL zJ30^{$ha_-W5X_(@4O(j+0M3~bm_uoKFO?IkvQ-}x@bo71Pd^6Q-T96`JBPhf+{LB z5YZd-C9cl=YY>Qx$UIoFk?~P6Hi@_~wAfj2hB4wGeI$qKxPu(rLfM5nWNhSSR|^Y^ z-=|D4k~k`}qeg}4O=p2DfHORAVK@&h4(dv{KUE$g)DB5Qk9vz!9mpoig zKAd36J+pIeGW<`;cN%*Qnza+Q@~7?UrPaB?s(B7jnE~S!|DI{MWl>`Ja}F@7g_t_c zzkq5p%%<`WOAc`mlpC&aYJ`iTQq6t!N|NQIQsg`9ZECSF?PM*wN1duvcV3SqI^%J< zJAT_~ndGl(VN5;#(Co0&Y;W(E{+$dTUZKe)bz=ATG3r;<>;`e507jhV^6_7ZaNarV zLsU;MQ6=C|OFFKn?y8BAhp$k`H&I@@T1I?meH~uXb;={v_e;TCFRDQ)XsqhOe|MaW zT#6Ia#YnP^5@~U?+rtO@l3$kJy-m6Q+TfIiq^_UUQ{F3?mVB9j?MqG;Gr*5p zr%DSr&mz0^^T`-SkFT^m`aH&q)=u_ogK!*&42%J^A#4ZchotF33H!*yMq#hg6>Rfj zGwuF#miBWv%@GD%y4r)_*y*(+11=32yWT3qd30_F5JYt({-1|{Ok4q(Cbp&?QAI!% z(I-$k0qv<6AGTmFUIfbWR4os!P#y0J$%z9oCXKu31pB2E0{o29|LBxmDiZ4>)>?I$E_wQC`8dsjw z+oDl+hXKK?xkSJa@Gq&%V0dpI`3kh@I;KKF@oj%{D%LYHdgApO8}7I@m1(X*(m&{@?vhsB(b^r$;jXbBa2%V~aG?O;q_fLeBoQtSs8Y!gS-6;)xnx4nk}2H!xJs&@ zxCt|VsIVo;O7c|(eXmzF9nspb)=h=?0jltaCE3%Z&EVFI59RM`l5qtrA&F1pFsBY# zEZN;k;{iWe+mNL!bcgHZ_Z&=<{lAR<3)hvS(9G-Ulc5aso_%$h58f$QW@sO>{_1Xi zazc3{*LCR0bpxOkg~CVb^%#%gW!~$~)}KR0FGdkL7=E~je=^%*rW5{R{V$hZdkdj# z{Y%i`2w-3m|1AtKAYcJEH8x$=#n3;OQt5}3GX^IW5%QZBzKwX8~FSw61z z@rOiQNL!ErHDH;+m(B6=q@=L2MPr(;W2p(jQ!Jx6Fm0^C&Q5VmLOsMu8 zk7DBe&x+kzg{>B)Xq>S%M|F*3B_MPh_9G=trpG>k%0og}2-*q-)IRSf8^V3pb@PzJ zF~M%Vo4Oe}yZZ+SpQ7Z1DGCUlN>PEoW{S>tdDUuGa2(?PhNsLN=?Z8l$#Bi(T7({O z>X_3m-+LLsf6od!W*N@2J9GH^Ypwj@<#g;Y^PnpT%Nvy?+j8ed2@9huL>6G_UB)^fz;2$_? z=_pQ$DCuZLNc&N;Ur}<-{GKW(usWd~?2O$Rg)o z-`-ubUU}vd%pMV0Tpq)*$ob-%hrZDv%#kZVgP~7FiZV`5SXB8NM{J_{oO1w&kbcp_ z>B$%EGQ${1G`E;S2HxP?&j!OYCE*_xpWc&EX``#|PPOwx&wxhrnEH#A0IlVU9nZ~w zaJ>;10GkEl%Fvnm`*+#;e10dRL1RWs$uu7SofK9~(nd&4koJTN!Lo*DMTc%HXVxb+ zt+QG^wQ+>!4XfzcN~iHwW6J|^`1Zm*?X+#$Zsik@j0@~l!Li~$0GT6PIIPF^W|K+rf<`UU1Jp?pgL}NFQ5Ip* z*-f&a0W_i5>;T(}Gxf!m{1l2bEY3Sk<`ylHu#<~QPVsVhDR630TnboI_DUIEKDk89 z|K?Z@Dv=rl!6*UZ+P$3r$fBz0)azv3+IF?R0 z{5O`75iOO2Un^wfPcv!gN%fpc6~u=x)KnCRiIDNh$-2bG+m%k1=2tHfgz86vTLp^B zyp1;$H3^JC=zuQy4r+B}(Li!=F6KB=X;SxVcew;~(cq_9c4<_*iXDJ7>lR6zHgzKK zoo`Aip2$>8BqV^Sr#=^`18c3^-+)Z<9CG$`++%KJd z3khv4UN1u4ecn97Y9Spt^Q8M@jO-DJs{Q*ofmhTv_g?C-$vEHifjkITJaE%iH1~y3s2?oadA1(x{s!40HGMd^M z|0_3W`?}$)<9s z$d&x^V0w^|g_Q?eRfa0^l%NvA;HY~r3}5=6@A1E$sCS+>+Z*{-<;Gh^_IU`WPpACi zwx2Wko;$a>o=X&e-^>8X!0NtzVg^B5CHGPV6F~qtQ^wiK=ejI@W#};eDUqwLQ(CGP zt;okj()Q_-!;o=xr5KQ#OetwLp%qH+exZj(cx4Yx-2iu2md8*xrA%oZ?_il%yb#6_ z5xZnt;E4gC;FyIM^zpLSvT*ZxW=;RO!p$0#QrIFF%^LlPvT+6mHnxt=$fV|#GuViU z4twD6<|PHHQQKA&?;7b|_UXK4rH&%)Vw`yb2cmEncEs^)m00{7}Wi7+0>a3#AmQK{gUIcz* zaAqGO=`e`~A>{z&Ot}q>*(uFez%29X^KjGYFc(OJpA44uuGc(&&}n^~Gm+e+v)V!Z z2?t6vHoWB6cb}(~QUEe{Fi`DMoxc$~ccsFQ6wL<9nea=3*jZ#oPXN}HfOVrz`^*Dv zxqVj!<~T909024)JTa<*GVK^Q^#C#snbn^tyF`C2&^^$YDwuigdv-_*A5#Z;F%(h4 zE<_O8WZ5X~s-!tK*(>&1SVaWIavK1vA1WBR!-ce!VG6QhmExob&`FT$$I*AtAq9#W z6Q>{GA2I6|1IcE$;?@*-qjkxECXARA`l@WE5cdEqRu}rY_IlahA}}d!~1c2OQx=7EPYB230RByMQ}Oy0|t>+f1Js1Dgx^jnjb6 zb7y5&u17cM@xdTr>zp}xe?w(F=IF#?6$azghhrxL)i?F|xpB=&4At)o{lblAMJ4L8 zo4``Md79=Rg_t}@Iuv+)hBHmukCkCexjz)a8?cO!_$i39g}GIcPO*ZU?;)QaV_`2j5>iAT+kdGl zcE0(qmtit6@YcGN$ySlBD}1}@H{gDLuai5+9?^evWwzvfr1Cc*9_|0-lr2%DG6bE!2lf!-+Gqe&+Xs)s?pvY zC0}DaHy4yt{7lGGX_({R?6pcm@sIq!01&JzD%-6ze5T3c880HI84&_B6|UKezA9JVd&_MG2#R+--c0gQc2R&=kj?=~7?Wq47=z~Bt*@@_r? z4S0?6=*K%kPsVREl$+(a^Wu{iV<|GesR|C!gKg@6Ei+UL!A!HX zc5^V0lQ^^kY|o=r^~z3alB(B&S@l(pIrI)eQ%k!eyKnwzBa4U>w#FK+( z2WLZy3tJ~2?5>yzuASO2p&1fCzRx{Mz2I1PgIL?ygc}zwRflaXHGPL6Z zOpE3g-)zgeD^%%HqTL;S-%w7Ut!;3t7qsCS&W0{t))Sxy!vU?&T8s;sch*y=&eyhJ z-ODX326>kJZ+mWEXP0-8kGDwB@upMf=n!g-Q#U`I8~Qu�QC4gUMMBaMQiTKlymq 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 z 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

kGM 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 z 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%0D;*`ZI3T{jSdZ*zjzgH&T0)D0Q%E3BoM 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

qq3nG+!ya4aQ3v?jr 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�yHlMH1-{YknRg@eA;}!qKcD;`i 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 createComponents(Client client, IocFindingService iocFindingService = new IocFindingService(client, clusterService, xContentRegistry); ThreatIntelAlertService threatIntelAlertService = new ThreatIntelAlertService(client, clusterService, xContentRegistry); SaIoCScanService ioCScanService = new SaIoCScanService(client, xContentRegistry, iocFindingService, threatIntelAlertService, notificationService); + DefaultTifSourceConfigLoaderService defaultTifSourceConfigLoaderService = new DefaultTifSourceConfigLoaderService(builtInTIFMetadataLoader, client, saTifSourceConfigManagementService); return List.of( detectorIndices, correlationIndices, correlationRuleIndices, ruleTopicIndices, customLogTypeIndices, ruleIndices, threatIntelAlertService, mapperService, indexTemplateManager, builtinLogTypeLoader, builtInTIFMetadataLoader, threatIntelFeedDataService, detectorThreatIntelService, correlationAlertService, notificationService, tifJobUpdateService, tifJobParameterService, threatIntelLockService, saTifSourceConfigService, saTifSourceConfigManagementService, stix2IOCFetchService, - ioCScanService); + ioCScanService, defaultTifSourceConfigLoaderService); } @Override diff --git a/src/main/java/org/opensearch/securityanalytics/model/DetailedSTIX2IOCDto.java b/src/main/java/org/opensearch/securityanalytics/model/DetailedSTIX2IOCDto.java index 5ae864dd2..cdcca8368 100644 --- a/src/main/java/org/opensearch/securityanalytics/model/DetailedSTIX2IOCDto.java +++ b/src/main/java/org/opensearch/securityanalytics/model/DetailedSTIX2IOCDto.java @@ -75,7 +75,6 @@ public static DetailedSTIX2IOCDto parse(XContentParser xcp, String id, Long vers xcp.nextToken(); switch (fieldName) { - // synced up with @hurneyt, parsing the id and version but may need to change ioc id/version logic case STIX2.ID_FIELD: if (xcp.currentToken() != XContentParser.Token.VALUE_NULL) { id = xcp.text(); @@ -90,7 +89,7 @@ public static DetailedSTIX2IOCDto parse(XContentParser xcp, String id, Long vers name = xcp.text(); break; case STIX2.TYPE_FIELD: - type = IOCType.valueOf(xcp.text().toLowerCase(Locale.ROOT)); + type = new IOCType(xcp.text().toLowerCase(Locale.ROOT)); break; case STIX2.VALUE_FIELD: value = xcp.text(); @@ -177,7 +176,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws return builder.startObject() .field(STIX2IOC.ID_FIELD, ioc.getId()) .field(STIX2IOC.NAME_FIELD, ioc.getName()) - .field(STIX2IOC.TYPE_FIELD, ioc.getType()) + .field(STIX2IOC.TYPE_FIELD, ioc.getType().toString()) .field(STIX2IOC.VALUE_FIELD, ioc.getValue()) .field(STIX2IOC.SEVERITY_FIELD, ioc.getSeverity()) .timeField(STIX2IOC.CREATED_FIELD, ioc.getCreated()) diff --git a/src/main/java/org/opensearch/securityanalytics/model/STIX2IOC.java b/src/main/java/org/opensearch/securityanalytics/model/STIX2IOC.java index 7b2d473ec..7769203b2 100644 --- a/src/main/java/org/opensearch/securityanalytics/model/STIX2IOC.java +++ b/src/main/java/org/opensearch/securityanalytics/model/STIX2IOC.java @@ -84,7 +84,7 @@ public STIX2IOC(StreamInput sin) throws IOException { this( sin.readString(), // id sin.readString(), // name - sin.readEnum(IOCType.class), // type + new IOCType(sin.readString()), // type sin.readString(), // value sin.readString(), // severity sin.readInstant(), // created @@ -142,7 +142,7 @@ public static STIX2IOC readFrom(StreamInput sin) throws IOException { public void writeTo(StreamOutput out) throws IOException { out.writeString(super.getId()); out.writeString(super.getName()); - out.writeEnum(super.getType()); + out.writeString(super.getType().toString()); out.writeString(super.getValue()); out.writeString(super.getSeverity()); out.writeInstant(super.getCreated()); @@ -160,7 +160,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws builder.startObject() .field(ID_FIELD, super.getId()) .field(NAME_FIELD, super.getName()) - .field(TYPE_FIELD, super.getType()) + .field(TYPE_FIELD, super.getType().toString()) .field(VALUE_FIELD, super.getValue()) .field(SEVERITY_FIELD, super.getSeverity()); XContentUtils.buildInstantAsField(builder, super.getCreated(), CREATED_FIELD); @@ -205,7 +205,7 @@ public static STIX2IOC parse(XContentParser xcp, String id, Long version) throws name = xcp.text(); break; case TYPE_FIELD: - type = IOCType.valueOf(xcp.text().toLowerCase(Locale.ROOT)); + type = new IOCType(xcp.text()); break; case VALUE_FIELD: value = xcp.text(); @@ -292,8 +292,8 @@ public static STIX2IOC parse(XContentParser xcp, String id, Long version) throws public void validate() throws IllegalArgumentException { if (super.getType() == null) { throw new IllegalArgumentException(String.format("[%s] is required.", TYPE_FIELD)); - } else if (!Arrays.asList(IOCType.values()).contains(super.getType())) { - logger.debug("Unsupported IOCType: {}", super.getType()); + } else if (!IOCType.supportedType(super.getType().toString())) { + logger.debug("Unsupported IOCType: {}", super.getType().toString()); throw new IllegalArgumentException(String.format("[%s] is not supported.", TYPE_FIELD)); } diff --git a/src/main/java/org/opensearch/securityanalytics/model/STIX2IOCDto.java b/src/main/java/org/opensearch/securityanalytics/model/STIX2IOCDto.java index 19db0a4f5..2145c55cb 100644 --- a/src/main/java/org/opensearch/securityanalytics/model/STIX2IOCDto.java +++ b/src/main/java/org/opensearch/securityanalytics/model/STIX2IOCDto.java @@ -102,7 +102,7 @@ public static STIX2IOCDto readFrom(StreamInput sin) throws IOException { public void writeTo(StreamOutput out) throws IOException { out.writeString(id); out.writeString(name); - out.writeEnum(type); + out.writeString(type.toString()); out.writeString(value); out.writeString(severity); out.writeInstant(created); @@ -120,7 +120,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws return builder.startObject() .field(STIX2IOC.ID_FIELD, id) .field(STIX2IOC.NAME_FIELD, name) - .field(STIX2IOC.TYPE_FIELD, type) + .field(STIX2IOC.TYPE_FIELD, type.toString()) .field(STIX2IOC.VALUE_FIELD, value) .field(STIX2IOC.SEVERITY_FIELD, severity) .timeField(STIX2IOC.CREATED_FIELD, created) @@ -161,7 +161,6 @@ public static STIX2IOCDto parse(XContentParser xcp, String id, Long version) thr xcp.nextToken(); switch (fieldName) { - // synced up with @hurneyt, parsing the id and version but may need to change ioc id/version logic case STIX2.ID_FIELD: if (xcp.currentToken() != XContentParser.Token.VALUE_NULL) { id = xcp.text(); @@ -176,7 +175,7 @@ public static STIX2IOCDto parse(XContentParser xcp, String id, Long version) thr name = xcp.text(); break; case STIX2.TYPE_FIELD: - type = IOCType.valueOf(xcp.text().toLowerCase(Locale.ROOT)); + type = new IOCType(xcp.text()); break; case STIX2.VALUE_FIELD: value = xcp.text(); diff --git a/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCConnectorFactory.java b/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCConnectorFactory.java index 4045f0ded..7c05f0b57 100644 --- a/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCConnectorFactory.java +++ b/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCConnectorFactory.java @@ -6,6 +6,8 @@ package org.opensearch.securityanalytics.services; import com.amazonaws.services.s3.AmazonS3; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.opensearch.securityanalytics.commons.connector.Connector; import org.opensearch.securityanalytics.commons.connector.S3Connector; import org.opensearch.securityanalytics.commons.connector.codec.InputCodec; @@ -21,6 +23,7 @@ import java.util.List; public class STIX2IOCConnectorFactory extends UnaryParameterCachingFactory> { + private static final Logger logger = LogManager.getLogger(STIX2IOCConnectorFactory.class); private final InputCodecFactory inputCodecFactory; private final S3ClientFactory s3ClientFactory; @@ -31,7 +34,7 @@ public STIX2IOCConnectorFactory(final InputCodecFactory inputCodecFactory, final protected Connector doCreate(FeedConfiguration feedConfiguration) { final FeedLocation feedLocation = FeedLocation.fromFeedConfiguration(feedConfiguration); - // TODO hurneyt add debug log for which location gets used + logger.debug("FeedLocation: {}", feedLocation); switch(feedLocation) { case S3: return createS3Connector(feedConfiguration); default: throw new IllegalArgumentException("Unsupported feedLocation: " + feedLocation); diff --git a/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCConsumer.java b/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCConsumer.java index 44d3e169e..9808b4387 100644 --- a/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCConsumer.java +++ b/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCConsumer.java @@ -42,11 +42,10 @@ public void accept(final STIX2 ioc) { feedStore.getSaTifSourceConfig().getName() ); - // TODO hurneyt refactor once the enum values are updated // If the IOC received is not a type listed for the config, do not add it to the queue - if (!feedStore.getSaTifSourceConfig().getIocTypes().contains(stix2IOC.getType().name())) { + if (!feedStore.getSaTifSourceConfig().getIocTypes().contains(stix2IOC.getType().toString())) { log.error("{} is not a supported Ioc type for tif source config {}. Skipping IOC {}: of type {} value {}", - stix2IOC.getType().name(), feedStore.getSaTifSourceConfig().getId(), + stix2IOC.getType().toString(), feedStore.getSaTifSourceConfig().getId(), stix2IOC.getId(), stix2IOC.getType(), stix2IOC.getValue() ); return; diff --git a/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCFeedStore.java b/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCFeedStore.java index 8c5769309..2998e6934 100644 --- a/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCFeedStore.java +++ b/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCFeedStore.java @@ -57,16 +57,13 @@ public class STIX2IOCFeedStore implements FeedStore { public static final String IOC_INDEX_PATTERN = IOC_INDEX_NAME_TEMPLATE + "-" + IOC_TIME_PLACEHOLDER; private final Logger log = LogManager.getLogger(STIX2IOCFeedStore.class); + Instant startTime = Instant.now(); private Client client; private ClusterService clusterService; private SATIFSourceConfig saTifSourceConfig; - - // TODO hurneyt FetchIocsActionResponse is just a placeholder response type for now private ActionListener baseListener; - - // TODO hurneyt this is using TIF batch size setting. Consider adding IOC-specific setting private Integer batchSize; public STIX2IOCFeedStore( @@ -97,7 +94,6 @@ public void storeIOCs(Map actionToIOCs) { for (Map.Entry> entry : iocsSortedByAction.entrySet()) { switch (entry.getKey()) { case DELETE: - // TODO hurneyt consider whether DELETE actions should be handled elsewhere break; case UPSERT: try { @@ -119,7 +115,7 @@ public void indexIocs(List iocs) throws IOException { initFeedIndex(newActiveIndex, ActionListener.wrap( r -> { saTifSourceConfig.getIocTypes().forEach(type -> { - IOCType iocType = IOCType.fromString(type); + IOCType iocType = new IOCType(type); if (saTifSourceConfig.getIocStoreConfig() instanceof DefaultIocStoreConfig) { List listOfIocToIndexDetails = ((DefaultIocStoreConfig) saTifSourceConfig.getIocStoreConfig()).getIocToIndexDetails(); diff --git a/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCFetchService.java b/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCFetchService.java index 867958a84..0b7da3d70 100644 --- a/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCFetchService.java +++ b/src/main/java/org/opensearch/securityanalytics/services/STIX2IOCFetchService.java @@ -7,8 +7,11 @@ import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; +import org.apache.commons.csv.CSVParser; +import org.apache.commons.csv.CSVRecord; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.opensearch.action.bulk.BulkRequest; import org.opensearch.client.Client; import org.opensearch.cluster.service.ClusterService; import org.opensearch.core.action.ActionListener; @@ -29,6 +32,7 @@ import org.opensearch.securityanalytics.commons.connector.model.S3ConnectorConfig; import org.opensearch.securityanalytics.commons.model.FeedConfiguration; import org.opensearch.securityanalytics.commons.model.IOCSchema; +import org.opensearch.securityanalytics.commons.model.IOCType; import org.opensearch.securityanalytics.commons.model.STIX2; import org.opensearch.securityanalytics.commons.model.UpdateType; import org.opensearch.securityanalytics.model.STIX2IOC; @@ -36,7 +40,9 @@ import org.opensearch.securityanalytics.settings.SecurityAnalyticsSettings; import org.opensearch.securityanalytics.threatIntel.model.S3Source; import org.opensearch.securityanalytics.threatIntel.model.SATIFSourceConfig; +import org.opensearch.securityanalytics.threatIntel.model.UrlDownloadSource; import org.opensearch.securityanalytics.threatIntel.service.TIFJobParameterService; +import org.opensearch.securityanalytics.threatIntel.util.ThreatIntelFeedParser; import org.opensearch.securityanalytics.util.SecurityAnalyticsException; import software.amazon.awssdk.core.exception.SdkException; import software.amazon.awssdk.services.s3.model.HeadObjectResponse; @@ -49,10 +55,16 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; +import java.time.Instant; import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; import java.util.List; +import java.util.UUID; import java.util.stream.Collectors; +import static org.opensearch.securityanalytics.threatIntel.service.ThreatIntelFeedDataService.isValidIp; + /** * IOC Service implements operations that interact with retrieving IOCs from data sources, * parsing them into threat intel data models (i.e., [IOC]), and ingesting them to system indexes. @@ -66,7 +78,6 @@ public class STIX2IOCFetchService { private STIX2IOCConnectorFactory connectorFactory; private S3ClientFactory s3ClientFactory; - // TODO hurneyt this is using TIF batch size setting. Consider adding IOC-specific setting private Integer batchSize; private String internalAuthEndpoint = ""; @@ -84,14 +95,14 @@ public STIX2IOCFetchService(Client client, ClusterService clusterService) { /** * Method takes in and calls method to rollover and bulk index a list of STIX2IOCs + * * @param saTifSourceConfig * @param stix2IOCList * @param listener */ public void onlyIndexIocs(SATIFSourceConfig saTifSourceConfig, List stix2IOCList, - ActionListener listener) - { + ActionListener listener) { STIX2IOCFeedStore feedStore = new STIX2IOCFeedStore(client, clusterService, saTifSourceConfig, listener); try { feedStore.indexIocs(stix2IOCList); @@ -100,6 +111,7 @@ public void onlyIndexIocs(SATIFSourceConfig saTifSourceConfig, listener.onFailure(e); } } + public void downloadAndIndexIOCs(SATIFSourceConfig saTifSourceConfig, ActionListener listener) { S3ConnectorConfig s3ConnectorConfig = constructS3ConnectorConfig(saTifSourceConfig); Connector s3Connector = constructS3Connector(s3ConnectorConfig); @@ -113,7 +125,6 @@ public void downloadAndIndexIOCs(SATIFSourceConfig saTifSourceConfig, ActionList listener.onFailure(e); } - // TODO consider passing listener into the flush IOC function try { consumer.flushIOCs(); } catch (Exception e) { @@ -144,7 +155,7 @@ private void testS3ClientConnection(S3ConnectorConfig s3ConnectorConfig, ActionL } catch (StsException stsException) { log.warn("S3Client connection test failed with StsException: ", stsException); listener.onResponse(new TestS3ConnectionResponse(RestStatus.fromCode(stsException.statusCode()), stsException.awsErrorDetails().errorMessage())); - } catch (SdkException sdkException ) { + } catch (SdkException sdkException) { // SdkException is a RunTimeException that doesn't have a status code. // Logging the full exception, and providing generic response as output. log.warn("S3Client connection test failed with SdkException: ", sdkException); @@ -227,6 +238,77 @@ private String getEndpoint() { return ""; } + public void downloadFromUrlAndIndexIOCs(SATIFSourceConfig saTifSourceConfig, ActionListener listener) { + UrlDownloadSource source = (UrlDownloadSource) saTifSourceConfig.getSource(); + switch (source.getFeedFormat()) { // todo add check to stop user from creating url type config from rest api. only internal allowed + case "csv": + try (CSVParser reader = ThreatIntelFeedParser.getThreatIntelFeedReaderCSV(source.getUrl())) { + CSVParser noHeaderReader = ThreatIntelFeedParser.getThreatIntelFeedReaderCSV(source.getUrl()); + boolean notFound = true; + + while (notFound) { + CSVRecord hasHeaderRecord = reader.iterator().next(); + + //if we want to skip this line and keep iterating + if ((hasHeaderRecord.values().length == 1 && "".equals(hasHeaderRecord.values()[0])) || hasHeaderRecord.get(0).charAt(0) == '#' || hasHeaderRecord.get(0).charAt(0) == ' ') { + noHeaderReader.iterator().next(); + } else { // we found the first line that contains information + notFound = false; + } + } + if (source.hasCsvHeader()) { + parseAndSaveThreatIntelFeedDataCSV(reader.iterator(), saTifSourceConfig, listener); + } else { + parseAndSaveThreatIntelFeedDataCSV(noHeaderReader.iterator(), saTifSourceConfig, listener); + } + } catch (Exception e) { + log.error("Failed to download the IoCs in CSV format for source " + saTifSourceConfig.getId()); + listener.onFailure(e); + return; + } + break; + default: + log.error("unsupported feed format for url download:" + source.getFeedFormat()); + listener.onFailure(new UnsupportedOperationException("unsupported feed format for url download:" + source.getFeedFormat())); + } + } + + private void parseAndSaveThreatIntelFeedDataCSV(Iterator iterator, SATIFSourceConfig saTifSourceConfig, ActionListener listener) throws IOException { + List bulkRequestList = new ArrayList<>(); + + UrlDownloadSource source = (UrlDownloadSource) saTifSourceConfig.getSource(); + List iocs = new ArrayList<>(); + while (iterator.hasNext()) { + CSVRecord record = iterator.next(); + String iocType = saTifSourceConfig.getIocTypes().stream().findFirst().orElse(null); + Integer colNum = source.getCsvIocValueColumnNo(); + String iocValue = record.values()[colNum].split(" ")[0]; + if (iocType.equalsIgnoreCase(IOCType.IPV4_TYPE) && !isValidIp(iocValue)) { + log.info("Invalid IP address, skipping this ioc record: {}", iocValue); + continue; + } + Instant now = Instant.now(); + STIX2IOC stix2IOC = new STIX2IOC( + UUID.randomUUID().toString(), + UUID.randomUUID().toString(), + iocType == null ? new IOCType(IOCType.IPV4_TYPE) : new IOCType(iocType), + iocValue, + "high", + now, + now, + "", + Collections.emptyList(), + "", + saTifSourceConfig.getId(), + saTifSourceConfig.getName(), + STIX2IOC.NO_VERSION + ); + iocs.add(stix2IOC); + } + STIX2IOCFeedStore feedStore = new STIX2IOCFeedStore(client, clusterService, saTifSourceConfig, listener); + feedStore.indexIocs(iocs); + } + public static class STIX2IOCFetchResponse extends ActionResponse implements ToXContentObject { public static String IOCS_FIELD = "iocs"; public static String TOTAL_FIELD = "total"; diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/common/SourceConfigDtoValidator.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/common/SourceConfigDtoValidator.java index c08b74eea..8001f37ea 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/common/SourceConfigDtoValidator.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/common/SourceConfigDtoValidator.java @@ -5,10 +5,12 @@ package org.opensearch.securityanalytics.threatIntel.common; +import org.opensearch.securityanalytics.commons.model.IOC; import org.opensearch.securityanalytics.commons.model.IOCType; import org.opensearch.securityanalytics.threatIntel.model.IocUploadSource; import org.opensearch.securityanalytics.threatIntel.model.S3Source; import org.opensearch.securityanalytics.threatIntel.model.SATIFSourceConfigDto; +import org.opensearch.securityanalytics.threatIntel.model.UrlDownloadSource; import java.util.ArrayList; import java.util.Arrays; @@ -21,15 +23,12 @@ public class SourceConfigDtoValidator { public List validateSourceConfigDto(SATIFSourceConfigDto sourceConfigDto) { List errorMsgs = new ArrayList<>(); - List iocTypeEnumNames = Arrays.stream(IOCType.values()) - .map(Enum::name) - .collect(Collectors.toList()); if (sourceConfigDto.getIocTypes().isEmpty()) { errorMsgs.add("Must specify at least one IOC type"); } else { for (String s: sourceConfigDto.getIocTypes()) { - if (false == iocTypeEnumNames.contains(s)) { + if (!IOCType.supportedType(s)) { errorMsgs.add("Invalid IOC type: " + s); } } @@ -55,6 +54,14 @@ public List validateSourceConfigDto(SATIFSourceConfigDto sourceConfigDto errorMsgs.add("Source must be S3_CUSTOM type"); } break; + case URL_DOWNLOAD: + if (sourceConfigDto.getSchedule() == null) { + errorMsgs.add("Must pass in schedule for URL_DOWNLOAD source type"); + } + if (sourceConfigDto.getSource() != null && sourceConfigDto.getSource() instanceof UrlDownloadSource == false) { + errorMsgs.add("Source must be URL_DOWNLOAD source type"); + } + break; } return errorMsgs; } diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/common/SourceConfigType.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/common/SourceConfigType.java index 04f7e8034..8efa5cfa5 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/common/SourceConfigType.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/common/SourceConfigType.java @@ -7,11 +7,11 @@ /** * Types of feeds threat intel can support - * Feed types include: S3_CUSTOM */ public enum SourceConfigType { S3_CUSTOM, - IOC_UPLOAD + IOC_UPLOAD, + URL_DOWNLOAD // LICENSED, // diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/iocscan/service/SaIoCScanService.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/iocscan/service/SaIoCScanService.java index 81a814915..47dfeed09 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/iocscan/service/SaIoCScanService.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/iocscan/service/SaIoCScanService.java @@ -41,6 +41,7 @@ import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.Set; @@ -375,9 +376,9 @@ private static SearchRequest getSearchRequestForIocType(List indices, St SearchRequest searchRequest = new SearchRequest(indices.toArray(new String[0])); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); // add the iocs sublist - boolQueryBuilder.must(new TermsQueryBuilder(STIX2.VALUE_FIELD, iocsSublist)); + boolQueryBuilder.must(new TermsQueryBuilder(STIX2.VALUE_FIELD + ".keyword", iocsSublist)); // add ioc type filter - boolQueryBuilder.must(new TermsQueryBuilder(STIX2.TYPE_FIELD, iocType.toLowerCase())); + boolQueryBuilder.must(new TermsQueryBuilder(STIX2.TYPE_FIELD + ".keyword", iocType.toLowerCase(Locale.ROOT))); searchRequest.source().query(boolQueryBuilder); return searchRequest; } diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/model/DefaultIocStoreConfig.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/model/DefaultIocStoreConfig.java index 60c749ca4..a63bc99d3 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/model/DefaultIocStoreConfig.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/model/DefaultIocStoreConfig.java @@ -101,13 +101,15 @@ public IocToIndexDetails(IOCType iocType, String indexPattern, String activeInde } public IocToIndexDetails(StreamInput sin) throws IOException { - this(sin.readEnum(IOCType.class), + this( + new IOCType(sin.readString()), sin.readString(), - sin.readString()); + sin.readString() + ); } @Override public void writeTo(StreamOutput out) throws IOException { - out.writeEnum(iocType); + out.writeString(iocType.toString()); out.writeString(indexPattern); out.writeString(activeIndex); } @@ -115,7 +117,7 @@ public void writeTo(StreamOutput out) throws IOException { @Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { return builder.startObject() - .field(IOC_TYPE_FIELD, iocType) + .field(IOC_TYPE_FIELD, iocType.toString()) .field(INDEX_PATTERN_FIELD, indexPattern) .field(ACTIVE_INDEX_FIELD, activeIndex) .endObject(); @@ -150,7 +152,7 @@ public static IocToIndexDetails parse(XContentParser xcp) throws IOException { public static IOCType toIocType(String name) { try { - return IOCType.fromString(name); + return new IOCType(name); } catch (IllegalArgumentException e) { log.error("Invalid Ioc type, cannot be parsed.", e); return null; diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/model/IocUploadSource.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/model/IocUploadSource.java index 8f79143e3..865120fac 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/model/IocUploadSource.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/model/IocUploadSource.java @@ -96,8 +96,4 @@ public void setIocs(List iocs) { public String getFileName() { return fileName; } - - public void setFileName(String fileName) { - this.fileName = fileName; - } } diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/model/Source.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/model/Source.java index a9d75c646..61444fe67 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/model/Source.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/model/Source.java @@ -20,6 +20,7 @@ public abstract class Source { abstract String name(); public static final String S3_FIELD = "s3"; public static final String IOC_UPLOAD_FIELD = "ioc_upload"; + public static final String URL_DOWNLOAD_FIELD = "url_download"; static Source readFrom(StreamInput sin) throws IOException { Type type = sin.readEnum(Type.class); @@ -28,6 +29,8 @@ static Source readFrom(StreamInput sin) throws IOException { return new S3Source(sin); case IOC_UPLOAD: return new IocUploadSource(sin); + case URL_DOWNLOAD: + return new UrlDownloadSource(sin); default: throw new IllegalStateException("Unexpected input ["+ type + "] when reading ioc store config"); } @@ -47,6 +50,9 @@ static Source parse(XContentParser xcp) throws IOException { case IOC_UPLOAD_FIELD: source = IocUploadSource.parse(xcp); break; + case URL_DOWNLOAD_FIELD: + source = UrlDownloadSource.parse(xcp); + break; } } return source; @@ -57,7 +63,9 @@ public void writeTo(StreamOutput out) throws IOException {} enum Type { S3(), - IOC_UPLOAD(); + IOC_UPLOAD(), + + URL_DOWNLOAD(); @Override public String toString() { diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/model/UrlDownloadSource.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/model/UrlDownloadSource.java new file mode 100644 index 000000000..fdc2d9756 --- /dev/null +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/model/UrlDownloadSource.java @@ -0,0 +1,117 @@ +package org.opensearch.securityanalytics.threatIntel.model; + +import org.opensearch.core.common.io.stream.StreamInput; +import org.opensearch.core.common.io.stream.StreamOutput; +import org.opensearch.core.common.io.stream.Writeable; +import org.opensearch.core.xcontent.ToXContent; +import org.opensearch.core.xcontent.XContentBuilder; +import org.opensearch.core.xcontent.XContentParser; + +import java.io.IOException; +import java.net.URL; + +/** + * This is a Threat Intel Source config where the iocs are downloaded from the URL + */ +public class UrlDownloadSource extends Source implements Writeable, ToXContent { + public static final String URL_FIELD = "url"; + public static final String FEED_FORMAT_FIELD = "feed_format"; + public static final String HAS_CSV_HEADER_FIELD = "has_csv_header_field"; + public static final String CSV_IOC_VALUE_COLUMN_NUM_FIELD = "csv_ioc_value_colum_num"; + public static final String SOURCE_NAME = "URL_DOWNLOAD"; + + private final URL url; + private final String feedFormat; + private final Boolean hasCsvHeader; + private final Integer csvIocValueColumnNo; + + public UrlDownloadSource(URL url, String feedFormat, Boolean hasCsvHeader, Integer csvIocValueColumnNo) { + this.url = url; + this.feedFormat = feedFormat; + this.hasCsvHeader = hasCsvHeader; + this.csvIocValueColumnNo = csvIocValueColumnNo; + + } + + public UrlDownloadSource(StreamInput sin) throws IOException { + this( + new URL(sin.readString()), + sin.readString(), + sin.readOptionalBoolean(), + sin.readOptionalInt() + ); + } + + @Override + public void writeTo(StreamOutput out) throws IOException { + out.writeString(url.toString()); + out.writeString(feedFormat); + out.writeOptionalBoolean(hasCsvHeader); + out.writeOptionalInt(csvIocValueColumnNo); + } + + @Override + String name() { + return SOURCE_NAME; + } + + public URL getUrl() { + return url; + } + + public static UrlDownloadSource parse(XContentParser xcp) throws IOException { + URL url = null; + String feedFormat = null; + Boolean hasCsvHeader = false; + Integer csvIocValueColumnNo = null; + while (xcp.nextToken() != XContentParser.Token.END_OBJECT) { + String fieldName = xcp.currentName(); + xcp.nextToken(); + switch (fieldName) { + case URL_FIELD: + String urlString = xcp.text(); + url = new URL(urlString); + break; + case FEED_FORMAT_FIELD: + feedFormat = xcp.text(); + break; + case HAS_CSV_HEADER_FIELD: + hasCsvHeader = xcp.booleanValue(); + break; + case CSV_IOC_VALUE_COLUMN_NUM_FIELD: + if (xcp.currentToken() == null) + xcp.skipChildren(); + else + csvIocValueColumnNo = xcp.intValue(); + break; + default: + xcp.skipChildren(); + } + } + return new UrlDownloadSource(url, feedFormat, hasCsvHeader, csvIocValueColumnNo); + } + + @Override + public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { + return builder.startObject() + .startObject(URL_DOWNLOAD_FIELD) + .field(URL_FIELD, url.toString()) + .field(FEED_FORMAT_FIELD, feedFormat) + .field(HAS_CSV_HEADER_FIELD, hasCsvHeader) + .field(CSV_IOC_VALUE_COLUMN_NUM_FIELD, csvIocValueColumnNo) + .endObject() + .endObject(); + } + + public String getFeedFormat() { + return feedFormat; + } + + public boolean hasCsvHeader() { + return hasCsvHeader; + } + + public Integer getCsvIocValueColumnNo() { + return csvIocValueColumnNo; + } +} diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/service/DefaultTifSourceConfigLoaderService.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/service/DefaultTifSourceConfigLoaderService.java new file mode 100644 index 000000000..ed160bbf1 --- /dev/null +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/service/DefaultTifSourceConfigLoaderService.java @@ -0,0 +1,180 @@ +package org.opensearch.securityanalytics.threatIntel.service; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.opensearch.action.search.SearchResponse; +import org.opensearch.action.support.GroupedActionListener; +import org.opensearch.client.Client; +import org.opensearch.core.action.ActionListener; +import org.opensearch.index.query.BoolQueryBuilder; +import org.opensearch.index.query.MatchQueryBuilder; +import org.opensearch.index.query.QueryBuilders; +import org.opensearch.jobscheduler.spi.schedule.IntervalSchedule; +import org.opensearch.rest.RestRequest; +import org.opensearch.search.SearchHit; +import org.opensearch.search.builder.SearchSourceBuilder; +import org.opensearch.securityanalytics.commons.model.IOCType; +import org.opensearch.securityanalytics.threatIntel.common.RefreshType; +import org.opensearch.securityanalytics.threatIntel.common.SourceConfigType; +import org.opensearch.securityanalytics.threatIntel.common.TIFJobState; +import org.opensearch.securityanalytics.threatIntel.feedMetadata.BuiltInTIFMetadataLoader; +import org.opensearch.securityanalytics.threatIntel.model.SATIFSourceConfigDto; +import org.opensearch.securityanalytics.threatIntel.model.TIFMetadata; +import org.opensearch.securityanalytics.threatIntel.model.UrlDownloadSource; + +import java.net.URL; +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +//todo handle refresh, update tif config +// todo block creation of url based config in transport layer +public class DefaultTifSourceConfigLoaderService { + private static final Logger log = LogManager.getLogger(DefaultTifSourceConfigLoaderService.class); + private final BuiltInTIFMetadataLoader tifMetadataLoader; + private final Client client; + private final SATIFSourceConfigManagementService satifSourceConfigManagementService; + + public DefaultTifSourceConfigLoaderService(BuiltInTIFMetadataLoader tifMetadataLoader, Client client, SATIFSourceConfigManagementService satifSourceConfigManagementService) { + this.tifMetadataLoader = tifMetadataLoader; + this.client = client; + this.satifSourceConfigManagementService = satifSourceConfigManagementService; + } + + /** + * check if the default tif source configs are loaded. if not, try create them from the feedMetadata.json file. + */ + public void createDefaultTifConfigsIfNotExists(ActionListener listener) { + List tifMetadataList = tifMetadataLoader.getTifMetadataList(); + if (tifMetadataList.isEmpty()) { + log.error("No built-in TIF Configs found"); + listener.onResponse(null); + return; + } + BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); + for (TIFMetadata tifMetadata : tifMetadataList) { + boolQueryBuilder.should(new MatchQueryBuilder("_id", tifMetadata.getFeedId())); + } + SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(boolQueryBuilder).size(9999); + satifSourceConfigManagementService.searchTIFSourceConfigs(searchSourceBuilder, + ActionListener.wrap(searchResponse -> { + createTifConfigsThatDontExist(searchResponse, tifMetadataList, listener); + }, e -> { + log.error("Failed to search tif config index for default tif configs", e); + listener.onFailure(e); + })); + } + + private void createTifConfigsThatDontExist(SearchResponse searchResponse, List tifMetadataList, ActionListener listener) { + Map feedsToCreate = tifMetadataList.stream() + .collect(Collectors.toMap( + TIFMetadata::getFeedId, + Function.identity() + )); + if (searchResponse.getHits() != null && searchResponse.getHits().getHits() != null) { + for (SearchHit hit : searchResponse.getHits().getHits()) { + feedsToCreate.remove(hit.getId()); + } + } + if (feedsToCreate.isEmpty()) { + listener.onResponse(null); + return; + } + GroupedActionListener> groupedActionListener = new GroupedActionListener<>( + new ActionListener<>() { + @Override + public void onResponse(Collection> responseOrExceptions) { + if (responseOrExceptions.stream().allMatch(it -> it.getException() != null)) { // all configs returned error + Exception e = responseOrExceptions.stream().findFirst().get().getException(); + log.error("Failed to create default tif configs", e); + listener.onFailure(e); + return; + } + listener.onResponse(null); + return; + } + + @Override + public void onFailure(Exception e) { + log.error("Unexpected failure while creating Default Threat intel source configs", e); + listener.onFailure(e); + return; + } + }, feedsToCreate.size() + ); + for (TIFMetadata tifMetadata : feedsToCreate.values()) { + if (tifMetadata == null) { + continue; + } + try { + Instant now = Instant.now(); + String iocType = null; + if (tifMetadata.getIocType().equalsIgnoreCase("ip")) { + iocType = IOCType.IPV4_TYPE; + } + satifSourceConfigManagementService.createOrUpdateTifSourceConfig( + new SATIFSourceConfigDto( + tifMetadata.getFeedId(), + SATIFSourceConfigDto.NO_VERSION, + tifMetadata.getName(), + "STIX2", + SourceConfigType.URL_DOWNLOAD, + tifMetadata.getDescription(), + null, + now, + new UrlDownloadSource(new URL(tifMetadata.getUrl()), tifMetadata.getFeedType(), tifMetadata.hasHeader(), tifMetadata.getIocCol()), + now, + now, + new IntervalSchedule(now, 1, ChronoUnit.DAYS), + TIFJobState.CREATING, + RefreshType.FULL, + null, + null, + true, + List.of(iocType), + true + ), + null, + RestRequest.Method.POST, + null, + ActionListener.wrap( + r -> { + groupedActionListener.onResponse(new ResponseOrException<>(r, null)); + }, + e -> { + log.error("failed to create default tif source config " + tifMetadata.getFeedId(), e); + groupedActionListener.onResponse(new ResponseOrException<>(null, e)); + }) + ); + continue; + } catch (Exception ex) { + log.error("Unexpected failure while creating Default Threat intel source configs " + tifMetadata.getFeedId(), ex); + groupedActionListener.onResponse(new ResponseOrException<>(null, ex)); + continue; + } + } + } + + private static class ResponseOrException { + private final R response; + private final Exception exception; + + private ResponseOrException(R response, Exception exception) { + this.response = response; + this.exception = exception; + } + + public R getResponse() { + return response; + } + + public Exception getException() { + return exception; + } + } +} + diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/service/SATIFSourceConfigManagementService.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/service/SATIFSourceConfigManagementService.java index 1d9a71a2b..65514f459 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/service/SATIFSourceConfigManagementService.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/service/SATIFSourceConfigManagementService.java @@ -27,6 +27,7 @@ import org.opensearch.rest.RestRequest; import org.opensearch.search.SearchHit; import org.opensearch.search.builder.SearchSourceBuilder; +import org.opensearch.securityanalytics.commons.model.IOCType; import org.opensearch.securityanalytics.model.STIX2IOC; import org.opensearch.securityanalytics.model.STIX2IOCDto; import org.opensearch.securityanalytics.services.STIX2IOCFetchService; @@ -48,10 +49,10 @@ import java.util.Map; import java.util.Set; import java.util.SortedMap; - import java.util.stream.Collectors; import static org.opensearch.securityanalytics.threatIntel.common.SourceConfigType.IOC_UPLOAD; +import static org.opensearch.securityanalytics.threatIntel.common.SourceConfigType.URL_DOWNLOAD; /** * Service class for threat intel feed source config object @@ -193,16 +194,19 @@ public void downloadAndSaveIOCs(SATIFSourceConfig saTifSourceConfig, case S3_CUSTOM: stix2IOCFetchService.downloadAndIndexIOCs(saTifSourceConfig, actionListener); break; + case URL_DOWNLOAD: + stix2IOCFetchService.downloadFromUrlAndIndexIOCs(saTifSourceConfig, actionListener); + break; case IOC_UPLOAD: List validStix2IocList = new ArrayList<>(); // If the IOC received is not a type listed for the config, do not add it to the queue for (STIX2IOC stix2IOC : stix2IOCList) { - if (saTifSourceConfig.getIocTypes().contains(stix2IOC.getType().name())) { + if (saTifSourceConfig.getIocTypes().contains(stix2IOC.getType().toString())) { validStix2IocList.add(stix2IOC); } else { log.error("{} is not a supported Ioc type for tif source config {}. Skipping IOC {}: of type {} value {}", - stix2IOC.getType().name(), saTifSourceConfig.getId(), - stix2IOC.getId(), stix2IOC.getType(), stix2IOC.getValue() + stix2IOC.getType().toString(), saTifSourceConfig.getId(), + stix2IOC.getId(), stix2IOC.getType().toString(), stix2IOC.getValue() ); } } @@ -351,7 +355,7 @@ private void storeAndDeleteIocIndices(List stix2IOCList, ActionListene Set concreteIndices = SATIFSourceConfigService.getConcreteIndices(clusterStateResponse); // remove ioc types not specified in list - defaultIocStoreConfig.getIocToIndexDetails().removeIf(iocToIndexDetails -> false == iocTypes.contains(iocToIndexDetails.getIocType().name())); + defaultIocStoreConfig.getIocToIndexDetails().removeIf(iocToIndexDetails -> !IOCType.supportedType(iocToIndexDetails.getIocType().toString())); // get the active indices defaultIocStoreConfig.getIocToIndexDetails().forEach(e -> activeIndices.add(e.getActiveIndex())); @@ -464,7 +468,7 @@ private void downloadAndSaveIocsToRefresh(ActionListener l if (newIocStoreConfig instanceof DefaultIocStoreConfig) { DefaultIocStoreConfig defaultIocStoreConfig = (DefaultIocStoreConfig) newIocStoreConfig; // remove ioc types not specified in list - defaultIocStoreConfig.getIocToIndexDetails().removeIf(iocToIndexDetails -> false == iocTypes.contains(iocToIndexDetails.getIocType().name())); + defaultIocStoreConfig.getIocToIndexDetails().removeIf(iocToIndexDetails -> !IOCType.supportedType(iocToIndexDetails.getIocType().toString())); updatedSourceConfig.setIocStoreConfig(defaultIocStoreConfig); } // Update source config as succeeded, change state back to available @@ -509,6 +513,11 @@ public void deleteTIFSourceConfig( ) { saTifSourceConfigService.getTIFSourceConfig(saTifSourceConfigId, ActionListener.wrap( saTifSourceConfig -> { + if (URL_DOWNLOAD.equals(saTifSourceConfig.getType())) { + log.error("Cannot delete tif source config {} as it's a built-in config and not user-defined.", saTifSourceConfigId); + listener.onFailure(new IllegalArgumentException("Cannot delete built-in tif source config " + saTifSourceConfigId)); + return; + } // Check if all threat intel monitors are deleted saTifSourceConfigService.checkAndEnsureThreatIntelMonitorsDeleted(ActionListener.wrap( isDeleted -> { @@ -768,15 +777,42 @@ public SATIFSourceConfig convertToSATIFConfig(SATIFSourceConfigDto saTifSourceCo } private SATIFSourceConfig updateSaTifSourceConfig(SATIFSourceConfigDto saTifSourceConfigDto, SATIFSourceConfig saTifSourceConfig) { + // currently url download is only for default tif configs and supports only activate/deactivate. Ideally should be via an activate API + if (URL_DOWNLOAD.equals(saTifSourceConfig.getType())) { + return new SATIFSourceConfig( + saTifSourceConfig.getId(), + saTifSourceConfig.getVersion(), + saTifSourceConfig.getName(), + saTifSourceConfig.getFormat(), + saTifSourceConfig.getType(), + saTifSourceConfig.getDescription(), + saTifSourceConfig.getCreatedByUser(), + saTifSourceConfig.getCreatedAt(), + saTifSourceConfig.getSource(), + saTifSourceConfig.getEnabledTime(), + saTifSourceConfig.getLastUpdateTime(), + saTifSourceConfig.getSchedule(), + saTifSourceConfig.getState(), + saTifSourceConfig.getRefreshType(), + saTifSourceConfig.getLastRefreshedTime(), + saTifSourceConfig.getLastRefreshedUser(), + saTifSourceConfig.isEnabled(), + saTifSourceConfig.getIocStoreConfig(), + saTifSourceConfig.getIocTypes(), + saTifSourceConfigDto.isEnabledForScan() + ); + } + if (false == saTifSourceConfig.getSource().getClass().equals(saTifSourceConfigDto.getSource().getClass())) { + throw new IllegalArgumentException(""); + } // remove duplicates from iocTypes Set iocTypes = new LinkedHashSet<>(saTifSourceConfigDto.getIocTypes()); - return new SATIFSourceConfig( saTifSourceConfig.getId(), saTifSourceConfig.getVersion(), saTifSourceConfigDto.getName(), saTifSourceConfigDto.getFormat(), - saTifSourceConfigDto.getType(), + saTifSourceConfig.getType(), saTifSourceConfigDto.getDescription(), saTifSourceConfig.getCreatedByUser(), saTifSourceConfig.getCreatedAt(), diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/service/TIFJobUpdateService.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/service/TIFJobUpdateService.java index eb90415b4..ab6ed9915 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/service/TIFJobUpdateService.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/service/TIFJobUpdateService.java @@ -187,7 +187,7 @@ public void onFailure(Exception e) { } break; default: - // if the feed type doesn't match any of the supporting feed types, throw an exception + onFailure(new UnsupportedOperationException("Not a supported feed format : " + tifMetadata.getFeedType())); } } } catch (IOException ex) { diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/service/ThreatIntelFeedDataService.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/service/ThreatIntelFeedDataService.java index 61ea2374d..1cb9e7428 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/service/ThreatIntelFeedDataService.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/service/ThreatIntelFeedDataService.java @@ -229,6 +229,8 @@ public void parseAndSaveThreatIntelFeedDataCSV( } public static boolean isValidIp(String ip) { + if (StringUtils.isBlank(ip)) + return false; String ipPattern = "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$"; Pattern pattern = Pattern.compile(ipPattern); Matcher matcher = pattern.matcher(ip); diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/transport/TransportIndexTIFSourceConfigAction.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/transport/TransportIndexTIFSourceConfigAction.java index ae06d7724..9b6378cf9 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/transport/TransportIndexTIFSourceConfigAction.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/transport/TransportIndexTIFSourceConfigAction.java @@ -15,12 +15,15 @@ import org.opensearch.commons.authuser.User; import org.opensearch.core.action.ActionListener; import org.opensearch.core.rest.RestStatus; +import org.opensearch.rest.RestRequest; import org.opensearch.securityanalytics.settings.SecurityAnalyticsSettings; import org.opensearch.securityanalytics.threatIntel.action.SAIndexTIFSourceConfigAction; import org.opensearch.securityanalytics.threatIntel.action.SAIndexTIFSourceConfigRequest; import org.opensearch.securityanalytics.threatIntel.action.SAIndexTIFSourceConfigResponse; +import org.opensearch.securityanalytics.threatIntel.common.SourceConfigType; import org.opensearch.securityanalytics.threatIntel.common.TIFLockService; import org.opensearch.securityanalytics.threatIntel.model.SATIFSourceConfigDto; +import org.opensearch.securityanalytics.threatIntel.model.UrlDownloadSource; import org.opensearch.securityanalytics.threatIntel.service.SATIFSourceConfigManagementService; import org.opensearch.securityanalytics.transport.SecureTransportAction; import org.opensearch.securityanalytics.util.SecurityAnalyticsException; @@ -94,6 +97,11 @@ private void retrieveLockAndCreateTIFConfig(SAIndexTIFSourceConfigRequest reques } try { SATIFSourceConfigDto saTifSourceConfigDto = request.getTIFConfigDto(); + if (SourceConfigType.URL_DOWNLOAD.equals(saTifSourceConfigDto.getType()) || saTifSourceConfigDto.getSource() instanceof UrlDownloadSource + && request.getMethod().equals(RestRequest.Method.POST)) { + listener.onFailure(new UnsupportedOperationException("Unsupported Threat intel Source Config Type passed - " + saTifSourceConfigDto.getType())); + return; + } saTifSourceConfigManagementService.createOrUpdateTifSourceConfig( saTifSourceConfigDto, lock, diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/transport/TransportSearchTIFSourceConfigsAction.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/transport/TransportSearchTIFSourceConfigsAction.java index d046a35e5..9eb47f0a3 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/transport/TransportSearchTIFSourceConfigsAction.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/transport/TransportSearchTIFSourceConfigsAction.java @@ -3,6 +3,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.opensearch.OpenSearchStatusException; +import org.opensearch.action.StepListener; import org.opensearch.action.search.SearchResponse; import org.opensearch.action.support.ActionFilters; import org.opensearch.action.support.HandledTransportAction; @@ -15,6 +16,7 @@ import org.opensearch.securityanalytics.settings.SecurityAnalyticsSettings; import org.opensearch.securityanalytics.threatIntel.action.SASearchTIFSourceConfigsAction; import org.opensearch.securityanalytics.threatIntel.action.SASearchTIFSourceConfigsRequest; +import org.opensearch.securityanalytics.threatIntel.service.DefaultTifSourceConfigLoaderService; import org.opensearch.securityanalytics.threatIntel.service.SATIFSourceConfigManagementService; import org.opensearch.securityanalytics.transport.SecureTransportAction; import org.opensearch.tasks.Task; @@ -28,6 +30,7 @@ public class TransportSearchTIFSourceConfigsAction extends HandledTransportActio private final ClusterService clusterService; private final Settings settings; + private final DefaultTifSourceConfigLoaderService defaultTifSourceConfigLoaderService; private final ThreadPool threadPool; @@ -41,11 +44,13 @@ public TransportSearchTIFSourceConfigsAction(TransportService transportService, ClusterService clusterService, final ThreadPool threadPool, Settings settings, + DefaultTifSourceConfigLoaderService defaultTifSourceConfigLoaderService, final SATIFSourceConfigManagementService saTifConfigService) { super(SASearchTIFSourceConfigsAction.NAME, transportService, actionFilters, SASearchTIFSourceConfigsRequest::new); this.clusterService = clusterService; this.threadPool = threadPool; this.settings = settings; + this.defaultTifSourceConfigLoaderService = defaultTifSourceConfigLoaderService; this.filterByEnabled = SecurityAnalyticsSettings.FILTER_BY_BACKEND_ROLES.get(this.settings); this.clusterService.getClusterSettings().addSettingsUpdateConsumer(SecurityAnalyticsSettings.FILTER_BY_BACKEND_ROLES, this::setFilterByEnabled); this.saTifConfigService = saTifConfigService; @@ -63,16 +68,38 @@ protected void doExecute(Task task, SASearchTIFSourceConfigsRequest request, Act } this.threadPool.getThreadContext().stashContext(); // stash context to make calls as admin client - - saTifConfigService.searchTIFSourceConfigs(request.getSearchSourceBuilder(), ActionListener.wrap( - r -> { - log.debug("Successfully listed all threat intel source configs"); - actionListener.onResponse(r); - }, e -> { - log.error("Failed to list all threat intel source configs"); - actionListener.onFailure(e); - } - )); + StepListener defaultTifConfigsLoadedListener; + try { + defaultTifConfigsLoadedListener = new StepListener<>(); + defaultTifSourceConfigLoaderService.createDefaultTifConfigsIfNotExists(defaultTifConfigsLoadedListener); + defaultTifConfigsLoadedListener.whenComplete(res -> saTifConfigService.searchTIFSourceConfigs(request.getSearchSourceBuilder(), ActionListener.wrap( + r -> { + log.debug("Successfully listed all threat intel source configs"); + actionListener.onResponse(r); + }, e -> { + log.error("Failed to list all threat intel source configs"); + actionListener.onFailure(e); + } + )), ex -> saTifConfigService.searchTIFSourceConfigs(request.getSearchSourceBuilder(), ActionListener.wrap( + r -> { + log.debug("Successfully listed all threat intel source configs"); + actionListener.onResponse(r); + }, e -> { + log.error("Failed to list all threat intel source configs"); + actionListener.onFailure(e); + } + ))); + } catch (Exception e) { + log.error("Failed to load default tif source configs. Moving on to list iocs", e); + saTifConfigService.searchTIFSourceConfigs(request.getSearchSourceBuilder(), ActionListener.wrap( + r -> { + log.debug("Successfully listed all threat intel source configs"); + actionListener.onResponse(r); + }, ex -> { + log.error("Failed to list all threat intel source configs"); + actionListener.onFailure(e); + })); + } } private void setFilterByEnabled(boolean filterByEnabled) { diff --git a/src/main/java/org/opensearch/securityanalytics/threatIntel/util/ThreatIntelFeedParser.java b/src/main/java/org/opensearch/securityanalytics/threatIntel/util/ThreatIntelFeedParser.java index bfbb9dbde..3cbf31086 100644 --- a/src/main/java/org/opensearch/securityanalytics/threatIntel/util/ThreatIntelFeedParser.java +++ b/src/main/java/org/opensearch/securityanalytics/threatIntel/util/ThreatIntelFeedParser.java @@ -42,9 +42,27 @@ public static CSVParser getThreatIntelFeedReaderCSV(final TIFMetadata tifMetadat connection.addRequestProperty(Constants.USER_AGENT_KEY, Constants.USER_AGENT_VALUE); return new CSVParser(new BufferedReader(new InputStreamReader(connection.getInputStream())), CSVFormat.RFC4180); } catch (IOException e) { - log.error("Exception: failed to read threat intel feed data from {}",tifMetadata.getUrl(), e); + log.error("Exception: failed to read threat intel feed data from {}", tifMetadata.getUrl(), e); throw new OpenSearchException("failed to read threat intel feed data from {}", tifMetadata.getUrl(), e); } }); } + + /** + * Create CSVParser of a threat intel feed + */ + @SuppressForbidden(reason = "Need to connect to http endpoint to read threat intel feed database file") + public static CSVParser getThreatIntelFeedReaderCSV(URL url) { + SpecialPermission.check(); + return AccessController.doPrivileged((PrivilegedAction) () -> { + try { + URLConnection connection = url.openConnection(); + connection.addRequestProperty(Constants.USER_AGENT_KEY, Constants.USER_AGENT_VALUE); + return new CSVParser(new BufferedReader(new InputStreamReader(connection.getInputStream())), CSVFormat.RFC4180); + } catch (IOException e) { + log.error("Exception: failed to read threat intel feed data from {}", url, e); + throw new OpenSearchException("failed to read threat intel feed data from {}", url, e); + } + }); + } } diff --git a/src/main/java/org/opensearch/securityanalytics/transport/TransportListIOCsAction.java b/src/main/java/org/opensearch/securityanalytics/transport/TransportListIOCsAction.java index 132725d71..2e1954ce7 100644 --- a/src/main/java/org/opensearch/securityanalytics/transport/TransportListIOCsAction.java +++ b/src/main/java/org/opensearch/securityanalytics/transport/TransportListIOCsAction.java @@ -10,6 +10,7 @@ import org.apache.logging.log4j.message.ParameterizedMessage; import org.opensearch.OpenSearchStatusException; import org.opensearch.action.ActionRunnable; +import org.opensearch.action.StepListener; import org.opensearch.action.search.SearchRequest; import org.opensearch.action.search.SearchResponse; import org.opensearch.action.support.ActionFilters; @@ -43,6 +44,7 @@ import org.opensearch.securityanalytics.model.STIX2IOCDto; import org.opensearch.securityanalytics.threatIntel.model.DefaultIocStoreConfig; import org.opensearch.securityanalytics.threatIntel.model.SATIFSourceConfig; +import org.opensearch.securityanalytics.threatIntel.service.DefaultTifSourceConfigLoaderService; import org.opensearch.securityanalytics.threatIntel.service.SATIFSourceConfigService; import org.opensearch.securityanalytics.threatIntel.transport.TransportSearchTIFSourceConfigsAction; import org.opensearch.securityanalytics.util.SecurityAnalyticsException; @@ -68,6 +70,7 @@ public class TransportListIOCsAction extends HandledTransportAction defaultTifConfigsLoadedListener = null; + try { + defaultTifConfigsLoadedListener = new StepListener<>(); + defaultTifSourceConfigLoaderService.createDefaultTifConfigsIfNotExists(defaultTifConfigsLoadedListener); + defaultTifConfigsLoadedListener.whenComplete(r -> searchIocs(), e -> searchIocs()); + } catch (Exception e) { + log.error("Failed to load default tif source configs. Moving on to list iocs", e); + searchIocs(); + } + } + + private void searchIocs() { /** get all match threat intel source configs. fetch write index of each config if no iocs provided else fetch just index alias */ List configIds = request.getFeedIds() == null ? Collections.emptyList() : request.getFeedIds(); saTifSourceConfigService.searchTIFSourceConfigs(getFeedsSearchSourceBuilder(configIds), @@ -128,7 +145,7 @@ void start() { SATIFSourceConfig config = SATIFSourceConfig.docParse(xcp, hit.getId(), hit.getVersion()); if (config.getIocStoreConfig() instanceof DefaultIocStoreConfig) { DefaultIocStoreConfig iocStoreConfig = (DefaultIocStoreConfig) config.getIocStoreConfig(); - for (DefaultIocStoreConfig.IocToIndexDetails iocToindexDetails: iocStoreConfig.getIocToIndexDetails()) { + for (DefaultIocStoreConfig.IocToIndexDetails iocToindexDetails : iocStoreConfig.getIocToIndexDetails()) { String writeIndex = iocToindexDetails.getActiveIndex(); if (writeIndex != null) { iocIndices.add(writeIndex); diff --git a/src/test/java/org/opensearch/securityanalytics/TestHelpers.java b/src/test/java/org/opensearch/securityanalytics/TestHelpers.java index 2a32098f2..75ee7cd89 100644 --- a/src/test/java/org/opensearch/securityanalytics/TestHelpers.java +++ b/src/test/java/org/opensearch/securityanalytics/TestHelpers.java @@ -2889,7 +2889,7 @@ public static SATIFSourceConfig randomSATIFSourceConfig( schedule = new org.opensearch.jobscheduler.spi.schedule.IntervalSchedule(Instant.now(), 1, ChronoUnit.DAYS); } if (iocStoreConfig == null) { - iocStoreConfig = new DefaultIocStoreConfig(List.of(new DefaultIocStoreConfig.IocToIndexDetails(IOCType.domain_name, "indexPattern", "writeIndex"))); + iocStoreConfig = new DefaultIocStoreConfig(List.of(new DefaultIocStoreConfig.IocToIndexDetails(new IOCType(IOCType.DOMAIN_NAME_TYPE), "indexPattern", "writeIndex"))); } if (iocTypes == null) { iocTypes = List.of("ip"); diff --git a/src/test/java/org/opensearch/securityanalytics/model/SATIFSourceConfigTests.java b/src/test/java/org/opensearch/securityanalytics/model/SATIFSourceConfigTests.java index 61f7ecf07..2687907d1 100644 --- a/src/test/java/org/opensearch/securityanalytics/model/SATIFSourceConfigTests.java +++ b/src/test/java/org/opensearch/securityanalytics/model/SATIFSourceConfigTests.java @@ -75,7 +75,7 @@ private void assertEqualsSaTifSourceConfigs(SATIFSourceConfig saTifSourceConfig, assertEquals(saTifSourceConfig.isEnabled(), newSaTifSourceConfig.isEnabled()); DefaultIocStoreConfig iocStoreConfig = (DefaultIocStoreConfig) saTifSourceConfig.getIocStoreConfig(); DefaultIocStoreConfig newIocStoreConfig = (DefaultIocStoreConfig) newSaTifSourceConfig.getIocStoreConfig(); - assertEquals(iocStoreConfig.getIocToIndexDetails().get(0).getIocType(), newIocStoreConfig.getIocToIndexDetails().get(0).getIocType()); + assertEquals(iocStoreConfig.getIocToIndexDetails().get(0).getIocType().toString(), newIocStoreConfig.getIocToIndexDetails().get(0).getIocType().toString()); assertEquals(iocStoreConfig.getIocToIndexDetails().get(0).getIndexPattern(), newIocStoreConfig.getIocToIndexDetails().get(0).getIndexPattern()); assertEquals(iocStoreConfig.getIocToIndexDetails().get(0).getActiveIndex(), newIocStoreConfig.getIocToIndexDetails().get(0).getActiveIndex()); assertEquals(saTifSourceConfig.getIocTypes(), newSaTifSourceConfig.getIocTypes()); diff --git a/src/test/java/org/opensearch/securityanalytics/resthandler/SATIFSourceConfigRestApiIT.java b/src/test/java/org/opensearch/securityanalytics/resthandler/SATIFSourceConfigRestApiIT.java index 7624a746a..2725d71ee 100644 --- a/src/test/java/org/opensearch/securityanalytics/resthandler/SATIFSourceConfigRestApiIT.java +++ b/src/test/java/org/opensearch/securityanalytics/resthandler/SATIFSourceConfigRestApiIT.java @@ -8,12 +8,12 @@ package org.opensearch.securityanalytics.resthandler; +import com.google.common.collect.ImmutableList; import org.junit.After; import org.junit.Assert; import org.junit.Before; -import org.junit.Ignore; -import org.junit.jupiter.api.condition.EnabledIfSystemProperty; import org.opensearch.client.Response; +import org.opensearch.client.ResponseException; import org.opensearch.jobscheduler.spi.schedule.IntervalSchedule; import org.opensearch.search.SearchHit; import org.opensearch.securityanalytics.SecurityAnalyticsPlugin; @@ -22,23 +22,31 @@ import org.opensearch.securityanalytics.commons.model.IOCType; import org.opensearch.securityanalytics.commons.utils.testUtils.S3ObjectGenerator; import org.opensearch.securityanalytics.model.STIX2IOC; -import org.opensearch.securityanalytics.services.STIX2IOCFeedStore; import org.opensearch.securityanalytics.threatIntel.common.SourceConfigType; import org.opensearch.securityanalytics.threatIntel.model.S3Source; import org.opensearch.securityanalytics.threatIntel.model.SATIFSourceConfigDto; import org.opensearch.securityanalytics.threatIntel.model.Source; import org.opensearch.securityanalytics.util.STIX2IOCGenerator; +import software.amazon.awssdk.core.sync.RequestBody; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; +import software.amazon.awssdk.services.s3.model.DeleteObjectRequest; +import software.amazon.awssdk.services.s3.model.DeleteObjectResponse; +import software.amazon.awssdk.services.s3.model.HeadObjectRequest; +import software.amazon.awssdk.services.s3.model.NoSuchKeyException; +import software.amazon.awssdk.services.s3.model.PutObjectRequest; +import software.amazon.awssdk.services.s3.model.PutObjectResponse; import java.io.IOException; import java.time.Instant; import java.time.temporal.ChronoUnit; +import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Objects; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -62,8 +70,13 @@ * -Dtests.SATIFSourceConfigRestApiIT.bucketName= \ * -Dtests.SATIFSourceConfigRestApiIT.region= \ * -Dtests.SATIFSourceConfigRestApiIT.roleArn= + * + * Optionally, the following system parameter can be supplied to PREVENT the tests from cleaning up the bucket objects. + * This could be helpful when troubleshooting failing tests by investigating the data generated during execution. + * By default, the bucket objects (not the bucket) will be cleaned up after the tests. + * To disable cleanup, add the following system parameter. + * -Dtests.SATIFSourceConfigRestApiIT.cleanup=false */ -@EnabledIfSystemProperty(named = "tests.SATIFSourceConfigRestApiIT.bucketName", matches = ".+") public class SATIFSourceConfigRestApiIT extends SecurityAnalyticsRestTestCase { private String bucketName; @@ -75,17 +88,44 @@ public class SATIFSourceConfigRestApiIT extends SecurityAnalyticsRestTestCase { private S3ObjectGenerator s3ObjectGenerator; private STIX2IOCGenerator stix2IOCGenerator; + /** + * Is reassigned in the initSource function. + * Will only be TRUE if 'bucketName', 'region', and 'roleArn' are supplied through system params. + * Disables tests when FALSE. + */ + private boolean canRunTests; + + /** + * List of invalid type patterns for easy test execution + */ + private final List invalidTypes = ImmutableList.of( + "ip", // "ip" is not currently a supported IOCType + "ipv4_addr" // Currently, the supported IOCTypes do not contain underscores + ); + @Before public void initSource() { - // Retrieve system parameters needed to run the tests + // Retrieve system parameters needed to run the tests. Only retrieve once if (bucketName == null) { bucketName = System.getProperty("tests.SATIFSourceConfigRestApiIT.bucketName"); region = System.getProperty("tests.SATIFSourceConfigRestApiIT.region"); roleArn = System.getProperty("tests.SATIFSourceConfigRestApiIT.roleArn"); } + // Confirm necessary system params are provided + canRunTests = bucketName != null && !bucketName.isBlank() && + region != null && !region.isBlank() && + roleArn != null && !roleArn.isBlank(); + + // Exit test setup if necessary system params are not provided + if (!canRunTests) { + logger.info(getClass().getName() + " tests disabled."); + System.out.println(getClass().getName() + " tests disabled."); + return; + } + // Only create the s3Client once - if (bucketName != null && s3Client == null) { + if (s3Client == null) { s3Client = S3Client.builder() .region(Region.of(region)) .build(); @@ -99,15 +139,36 @@ public void initSource() { @After public void afterTest() { + // Exit test cleanup if necessary system params are not provided + if (!canRunTests) return; + + // Delete the bucket object unless cleanup is disabled + if (!Objects.equals(System.getProperty("tests.SATIFSourceConfigRestApiIT.cleanup"), "false")) { + DeleteObjectResponse response = s3Client.deleteObject( + DeleteObjectRequest.builder() + .bucket(bucketName) + .key(objectKey) + .build() + ); + + // Confirm bucket object was deleted successfully + assertTrue( + String.format("Failed to delete object with key %s in bucket %s", objectKey, bucketName), + response.sdkHttpResponse().isSuccessful() + ); + } + + // Close the client s3Client.close(); } - @Ignore public void testCreateSATIFSourceConfigAndVerifyJobRan() throws IOException, InterruptedException { + // Only run tests when required system params are provided + if (!canRunTests) return; + // Generate test IOCs, and upload them to S3 to create the bucket object. Feed creation fails if the bucket object doesn't exist. int numOfIOCs = 1; - stix2IOCGenerator = new STIX2IOCGenerator(); - stix2IOCGenerator.setType(IOCType.ipv4_addr); + stix2IOCGenerator = new STIX2IOCGenerator(List.of(new IOCType(IOCType.IPV4_TYPE))); s3ObjectGenerator.write(numOfIOCs, objectKey, stix2IOCGenerator); assertEquals("Incorrect number of test IOCs generated.", numOfIOCs, stix2IOCGenerator.getIocs().size()); @@ -116,7 +177,7 @@ public void testCreateSATIFSourceConfigAndVerifyJobRan() throws IOException, Int String feedFormat = "STIX2"; SourceConfigType sourceConfigType = SourceConfigType.S3_CUSTOM; IntervalSchedule schedule = new IntervalSchedule(Instant.now(), 1, ChronoUnit.MINUTES); - List iocTypes = List.of("ip", "domain-name"); + List iocTypes = List.of(IOCType.IPV4_TYPE, IOCType.DOMAIN_NAME_TYPE); SATIFSourceConfigDto saTifSourceConfigDto = new SATIFSourceConfigDto( null, @@ -136,7 +197,8 @@ public void testCreateSATIFSourceConfigAndVerifyJobRan() throws IOException, Int Instant.now(), null, true, - iocTypes, true + iocTypes, + true ); Response response = makeRequest(client(), "POST", SecurityAnalyticsPlugin.THREAT_INTEL_SOURCE_URI, Collections.emptyMap(), toHttpEntity(saTifSourceConfigDto)); Assert.assertEquals(201, response.getStatusLine().getStatusCode()); @@ -173,35 +235,13 @@ public void testCreateSATIFSourceConfigAndVerifyJobRan() throws IOException, Int }, 240, TimeUnit.SECONDS); } - /** - * Calls the get source config api and checks if the last updated time is different from the time that was passed in - * @param createdId - * @param firstUpdatedTime - * @return - * @throws IOException - */ - protected boolean verifyJobRan(String createdId, String firstUpdatedTime) throws IOException { - Response response; - Map responseBody; - - // call get API to get the latest source config by ID - response = makeRequest(client(), "GET", SecurityAnalyticsPlugin.THREAT_INTEL_SOURCE_URI + "/" + createdId, Collections.emptyMap(), null); - responseBody = asMap(response); - - String returnedLastUpdatedTime = (String) ((Map)responseBody.get("source_config")).get("last_update_time"); - - if(firstUpdatedTime.equals(returnedLastUpdatedTime.toString()) == false) { - return true; - } - return false; - } - - @Ignore public void testGetSATIFSourceConfigById() throws IOException { + // Only run tests when required system params are provided + if (!canRunTests) return; + // Generate test IOCs, and upload them to S3 to create the bucket object. Feed creation fails if the bucket object doesn't exist. int numOfIOCs = 1; - stix2IOCGenerator = new STIX2IOCGenerator(); - stix2IOCGenerator.setType(IOCType.hashes); + stix2IOCGenerator = new STIX2IOCGenerator(List.of(new IOCType(IOCType.HASHES_TYPE))); s3ObjectGenerator.write(numOfIOCs, objectKey, stix2IOCGenerator); assertEquals("Incorrect number of test IOCs generated.", numOfIOCs, stix2IOCGenerator.getIocs().size()); @@ -210,7 +250,7 @@ public void testGetSATIFSourceConfigById() throws IOException { String feedFormat = "STIX2"; SourceConfigType sourceConfigType = SourceConfigType.S3_CUSTOM; IntervalSchedule schedule = new IntervalSchedule(Instant.now(), 1, ChronoUnit.DAYS); - List iocTypes = List.of("hashes"); + List iocTypes = List.of(IOCType.HASHES_TYPE); SATIFSourceConfigDto saTifSourceConfigDto = new SATIFSourceConfigDto( null, @@ -230,7 +270,8 @@ public void testGetSATIFSourceConfigById() throws IOException { Instant.now(), null, true, - iocTypes, true + iocTypes, + true ); Response response = makeRequest(client(), "POST", SecurityAnalyticsPlugin.THREAT_INTEL_SOURCE_URI, Collections.emptyMap(), toHttpEntity(saTifSourceConfigDto)); @@ -262,12 +303,13 @@ public void testGetSATIFSourceConfigById() throws IOException { Assert.assertTrue("Created ioc types and returned ioc types do not match", iocTypes.containsAll(returnedIocTypes) && returnedIocTypes.containsAll(iocTypes)); } - @Ignore public void testDeleteSATIFSourceConfig() throws IOException { + // Only run tests when required system params are provided + if (!canRunTests) return; + // Generate test IOCs, and upload them to S3 to create the bucket object. Feed creation fails if the bucket object doesn't exist. int numOfIOCs = 1; - stix2IOCGenerator = new STIX2IOCGenerator(); - stix2IOCGenerator.setType(IOCType.ipv4_addr); + stix2IOCGenerator = new STIX2IOCGenerator(List.of(new IOCType(IOCType.IPV4_TYPE))); s3ObjectGenerator.write(numOfIOCs, objectKey, stix2IOCGenerator); assertEquals("Incorrect number of test IOCs generated.", numOfIOCs, stix2IOCGenerator.getIocs().size()); @@ -276,7 +318,7 @@ public void testDeleteSATIFSourceConfig() throws IOException { String feedFormat = "STIX2"; SourceConfigType sourceConfigType = SourceConfigType.S3_CUSTOM; IntervalSchedule schedule = new IntervalSchedule(Instant.now(), 1, ChronoUnit.MINUTES); - List iocTypes = List.of("ip", "hashes"); + List iocTypes = List.of(IOCType.IPV4_TYPE, IOCType.HASHES_TYPE); SATIFSourceConfigDto saTifSourceConfigDto = new SATIFSourceConfigDto( null, @@ -296,7 +338,8 @@ public void testDeleteSATIFSourceConfig() throws IOException { Instant.now(), null, true, - iocTypes, true + iocTypes, + true ); Response response = makeRequest(client(), "POST", SecurityAnalyticsPlugin.THREAT_INTEL_SOURCE_URI, Collections.emptyMap(), toHttpEntity(saTifSourceConfigDto)); @@ -331,21 +374,121 @@ public void testDeleteSATIFSourceConfig() throws IOException { Assert.assertEquals(0, hits.size()); } - @Ignore public void testRetrieveIOCsSuccessfully() throws IOException, InterruptedException { - // Generate test IOCs, and upload them to S3 + // Only run tests when required system params are provided + if (!canRunTests) return; + + // Execute test for each IOCType + for (String type : IOCType.types) { + // Generate test IOCs, and upload them to S3 + int numOfIOCs = 5; + stix2IOCGenerator = new STIX2IOCGenerator(List.of(new IOCType(type))); + s3ObjectGenerator.write(numOfIOCs, objectKey, stix2IOCGenerator); + assertEquals("Incorrect number of test IOCs generated for type: " + type, numOfIOCs, stix2IOCGenerator.getIocs().size()); + + // Create test feed + String feedName = "download_test_feed_name"; + String feedFormat = "STIX2"; + SourceConfigType sourceConfigType = SourceConfigType.S3_CUSTOM; + IntervalSchedule schedule = new IntervalSchedule(Instant.now(), 1, ChronoUnit.MINUTES); + List iocTypes = List.of(type); + + SATIFSourceConfigDto saTifSourceConfigDto = new SATIFSourceConfigDto( + null, + null, + feedName, + feedFormat, + sourceConfigType, + null, + null, + Instant.now(), + source, + null, + Instant.now(), + schedule, + null, + null, + Instant.now(), + null, + true, + iocTypes, + true + ); + + // Confirm test feed was created successfully + Response response = makeRequest(client(), "POST", SecurityAnalyticsPlugin.THREAT_INTEL_SOURCE_URI, Collections.emptyMap(), toHttpEntity(saTifSourceConfigDto)); + Assert.assertEquals(201, response.getStatusLine().getStatusCode()); + Map responseBody = asMap(response); + + String createdId = responseBody.get("_id").toString(); + Assert.assertNotEquals("Response is missing Id", SATIFSourceConfigDto.NO_ID, createdId); + + + // Wait for feed to execute + String firstUpdatedTime = (String) ((Map)responseBody.get("source_config")).get("last_refreshed_time"); + waitUntil(() -> { + try { + return verifyJobRan(createdId, firstUpdatedTime); + } catch (IOException e) { + throw new RuntimeException("failed to verify that job ran"); + } + }, 240, TimeUnit.SECONDS); + + // Confirm IOCs were ingested to system index for the feed + String indexName = getAllIocIndexPatternById(createdId); + String request = "{\n" + + " \"query\" : {\n" + + " \"match_all\":{\n" + + " }\n" + + " }\n" + + "}"; + List hits = executeSearch(indexName, request); + + // Confirm expected number of results are returned + assertEquals(numOfIOCs, hits.size()); + List> iocs = hits.stream() + .map(SearchHit::getSourceAsMap) + .collect(Collectors.toList()); + + // Sort IOC lists for easy comparison + stix2IOCGenerator.getIocs().sort(Comparator.comparing(STIX2IOC::getName)); + iocs.sort(Comparator.comparing(ioc -> (String) ioc.get(STIX2IOC.NAME_FIELD))); + + // Confirm expected IOCs have been ingested + for (int i = 0; i < numOfIOCs; i++) { + assertEquals(stix2IOCGenerator.getIocs().get(i).getName(), iocs.get(i).get(STIX2IOC.NAME_FIELD)); + assertEquals(stix2IOCGenerator.getIocs().get(i).getType().toString(), IOCType.fromString((String) iocs.get(i).get(STIX2IOC.TYPE_FIELD))); + assertEquals(stix2IOCGenerator.getIocs().get(i).getValue(), iocs.get(i).get(STIX2IOC.VALUE_FIELD)); + assertEquals(stix2IOCGenerator.getIocs().get(i).getSeverity(), iocs.get(i).get(STIX2IOC.SEVERITY_FIELD)); + + // TODO troubleshoot instant assertions +// assertEquals(stix2IOCGenerator.getIocs().get(i).getCreated().toString(), iocs.get(i).get(STIX2IOC.CREATED_FIELD)); +// assertEquals(stix2IOCGenerator.getIocs().get(i).getModified().toString(), iocs.get(i).get(STIX2IOC.MODIFIED_FIELD)); + + assertEquals(stix2IOCGenerator.getIocs().get(i).getDescription(), iocs.get(i).get(STIX2IOC.DESCRIPTION_FIELD)); + assertEquals(stix2IOCGenerator.getIocs().get(i).getLabels(), iocs.get(i).get(STIX2IOC.LABELS_FIELD)); + assertEquals(createdId, iocs.get(i).get(STIX2IOC.FEED_ID_FIELD)); + assertEquals(stix2IOCGenerator.getIocs().get(i).getSpecVersion(), iocs.get(i).get(STIX2IOC.SPEC_VERSION_FIELD)); + } + } + } + + public void testRetrieveMultipleIOCTypesSuccessfully() throws IOException, InterruptedException { + // Only run tests when required system params are provided + if (!canRunTests) return; + + // Generate test IOCs for each type, and upload them to S3 int numOfIOCs = 5; stix2IOCGenerator = new STIX2IOCGenerator(); - stix2IOCGenerator.setType(IOCType.ipv4_addr); s3ObjectGenerator.write(numOfIOCs, objectKey, stix2IOCGenerator); - assertEquals("Incorrect number of test IOCs generated.", numOfIOCs, stix2IOCGenerator.getIocs().size()); + List allIocs = stix2IOCGenerator.getIocs(); + assertEquals("Incorrect total number of test IOCs generated.", IOCType.types.size() * numOfIOCs, allIocs.size()); // Create test feed String feedName = "download_test_feed_name"; String feedFormat = "STIX2"; SourceConfigType sourceConfigType = SourceConfigType.S3_CUSTOM; IntervalSchedule schedule = new IntervalSchedule(Instant.now(), 1, ChronoUnit.MINUTES); - List iocTypes = List.of(IOCType.ipv4_addr.toString()); SATIFSourceConfigDto saTifSourceConfigDto = new SATIFSourceConfigDto( null, @@ -365,7 +508,8 @@ public void testRetrieveIOCsSuccessfully() throws IOException, InterruptedExcept Instant.now(), null, true, - iocTypes, true + IOCType.types, + true ); // Confirm test feed was created successfully @@ -389,7 +533,9 @@ public void testRetrieveIOCsSuccessfully() throws IOException, InterruptedExcept // Confirm IOCs were ingested to system index for the feed String indexName = getAllIocIndexPatternById(createdId); + String request = "{\n" + + " \"size\" : 10000,\n" + " \"query\" : {\n" + " \"match_all\":{\n" + " }\n" + @@ -398,30 +544,264 @@ public void testRetrieveIOCsSuccessfully() throws IOException, InterruptedExcept List hits = executeSearch(indexName, request); // Confirm expected number of results are returned - assertEquals(numOfIOCs, hits.size()); - List> iocs = hits.stream() + assertEquals(allIocs.size(), hits.size()); + List> iocHits = hits.stream() .map(SearchHit::getSourceAsMap) .collect(Collectors.toList()); // Sort IOC lists for easy comparison - stix2IOCGenerator.getIocs().sort(Comparator.comparing(STIX2IOC::getName)); - iocs.sort(Comparator.comparing(ioc -> (String) ioc.get(STIX2IOC.NAME_FIELD))); + allIocs.sort(Comparator.comparing(STIX2IOC::getName)); + iocHits.sort(Comparator.comparing(ioc -> (String) ioc.get(STIX2IOC.NAME_FIELD))); // Confirm expected IOCs have been ingested - for (int i = 0; i < numOfIOCs; i++) { - assertEquals(stix2IOCGenerator.getIocs().get(i).getName(), iocs.get(i).get(STIX2IOC.NAME_FIELD)); - assertEquals(stix2IOCGenerator.getIocs().get(i).getType(), IOCType.fromString((String) iocs.get(i).get(STIX2IOC.TYPE_FIELD))); - assertEquals(stix2IOCGenerator.getIocs().get(i).getValue(), iocs.get(i).get(STIX2IOC.VALUE_FIELD)); - assertEquals(stix2IOCGenerator.getIocs().get(i).getSeverity(), iocs.get(i).get(STIX2IOC.SEVERITY_FIELD)); + for (int i = 0; i < allIocs.size(); i++) { + assertEquals(stix2IOCGenerator.getIocs().get(i).getName(), iocHits.get(i).get(STIX2IOC.NAME_FIELD)); + assertEquals(stix2IOCGenerator.getIocs().get(i).getType().toString(), IOCType.fromString((String) iocHits.get(i).get(STIX2IOC.TYPE_FIELD))); + assertEquals(stix2IOCGenerator.getIocs().get(i).getValue(), iocHits.get(i).get(STIX2IOC.VALUE_FIELD)); + assertEquals(stix2IOCGenerator.getIocs().get(i).getSeverity(), iocHits.get(i).get(STIX2IOC.SEVERITY_FIELD)); // TODO troubleshoot instant assertions -// assertEquals(stix2IOCGenerator.getIocs().get(i).getCreated().toString(), iocs.get(i).get(STIX2IOC.CREATED_FIELD)); -// assertEquals(stix2IOCGenerator.getIocs().get(i).getModified().toString(), iocs.get(i).get(STIX2IOC.MODIFIED_FIELD)); +// assertEquals(stix2IOCGenerator.getIocs().get(i).getCreated().toString(), iocHits.get(i).get(STIX2IOC.CREATED_FIELD)); +// assertEquals(stix2IOCGenerator.getIocs().get(i).getModified().toString(), iocHits.get(i).get(STIX2IOC.MODIFIED_FIELD)); - assertEquals(stix2IOCGenerator.getIocs().get(i).getDescription(), iocs.get(i).get(STIX2IOC.DESCRIPTION_FIELD)); - assertEquals(stix2IOCGenerator.getIocs().get(i).getLabels(), iocs.get(i).get(STIX2IOC.LABELS_FIELD)); - assertEquals(createdId, iocs.get(i).get(STIX2IOC.FEED_ID_FIELD)); - assertEquals(stix2IOCGenerator.getIocs().get(i).getSpecVersion(), iocs.get(i).get(STIX2IOC.SPEC_VERSION_FIELD)); + assertEquals(stix2IOCGenerator.getIocs().get(i).getDescription(), iocHits.get(i).get(STIX2IOC.DESCRIPTION_FIELD)); + assertEquals(stix2IOCGenerator.getIocs().get(i).getLabels(), iocHits.get(i).get(STIX2IOC.LABELS_FIELD)); + assertEquals(createdId, iocHits.get(i).get(STIX2IOC.FEED_ID_FIELD)); + assertEquals(stix2IOCGenerator.getIocs().get(i).getSpecVersion(), iocHits.get(i).get(STIX2IOC.SPEC_VERSION_FIELD)); } } + + public void testWithValidAndInvalidIOCTypes() throws IOException { + // Only run tests when required system params are provided + if (!canRunTests) return; + + // Generate test IOCs, and upload them to S3 + int numOfIOCs = 5; + stix2IOCGenerator = new STIX2IOCGenerator(List.of(new IOCType(IOCType.IPV4_TYPE))); + s3ObjectGenerator.write(numOfIOCs, objectKey, stix2IOCGenerator); + assertEquals("Incorrect number of test IOCs generated.", numOfIOCs, stix2IOCGenerator.getIocs().size()); + + List types = new ArrayList<>(invalidTypes); + types.addAll(IOCType.types); + + // Execute the test for each invalid type + for (String type : invalidTypes) { + // Create test feed + String feedName = "download_test_feed_name"; + String feedFormat = "STIX2"; + SourceConfigType sourceConfigType = SourceConfigType.S3_CUSTOM; + IntervalSchedule schedule = new IntervalSchedule(Instant.now(), 1, ChronoUnit.MINUTES); + + List iocTypes = List.of(type); + + SATIFSourceConfigDto saTifSourceConfigDto = new SATIFSourceConfigDto( + null, + null, + feedName, + feedFormat, + sourceConfigType, + null, + null, + Instant.now(), + source, + null, + Instant.now(), + schedule, + null, + null, + Instant.now(), + null, + true, + iocTypes, + true + ); + + Exception exception = assertThrows(ResponseException.class, () -> + makeRequest(client(), "POST", SecurityAnalyticsPlugin.THREAT_INTEL_SOURCE_URI, Collections.emptyMap(), toHttpEntity(saTifSourceConfigDto)) + ); + + String expectedError = "{\"error\":{\"root_cause\":[{\"type\":\"status_exception\",\"reason\":\"No compatible Iocs were downloaded for config download_test_feed_name\"}],\"type\":\"status_exception\",\"reason\":\"No compatible Iocs were downloaded for config download_test_feed_name\"},\"status\":400}"; + assertTrue(exception.getMessage().contains(expectedError)); + } + } + + public void testWithInvalidIOCTypes() throws IOException { + // Only run tests when required system params are provided + if (!canRunTests) return; + + // Generate test IOCs, and upload them to S3 + int numOfIOCs = 5; + stix2IOCGenerator = new STIX2IOCGenerator(List.of(new IOCType(IOCType.IPV4_TYPE))); + s3ObjectGenerator.write(numOfIOCs, objectKey, stix2IOCGenerator); + assertEquals("Incorrect number of test IOCs generated.", numOfIOCs, stix2IOCGenerator.getIocs().size()); + + // Execute the test for each invalid type + for (String type : invalidTypes) { + // Create test feed + String feedName = "download_test_feed_name"; + String feedFormat = "STIX2"; + SourceConfigType sourceConfigType = SourceConfigType.S3_CUSTOM; + IntervalSchedule schedule = new IntervalSchedule(Instant.now(), 1, ChronoUnit.MINUTES); + + List iocTypes = List.of(type); + + SATIFSourceConfigDto saTifSourceConfigDto = new SATIFSourceConfigDto( + null, + null, + feedName, + feedFormat, + sourceConfigType, + null, + null, + Instant.now(), + source, + null, + Instant.now(), + schedule, + null, + null, + Instant.now(), + null, + true, + iocTypes, + true + ); + + Exception exception = assertThrows(ResponseException.class, () -> + makeRequest(client(), "POST", SecurityAnalyticsPlugin.THREAT_INTEL_SOURCE_URI, Collections.emptyMap(), toHttpEntity(saTifSourceConfigDto)) + ); + + String expectedError = "{\"error\":{\"root_cause\":[{\"type\":\"status_exception\",\"reason\":\"No compatible Iocs were downloaded for config download_test_feed_name\"}],\"type\":\"status_exception\",\"reason\":\"No compatible Iocs were downloaded for config download_test_feed_name\"},\"status\":400}"; + assertTrue(exception.getMessage().contains(expectedError)); + } + } + + public void testWithNoIOCsToDownload() { + // Only run tests when required system params are provided + if (!canRunTests) return; + + // Create the bucket object without any IOCs + PutObjectRequest putObjectRequest = PutObjectRequest.builder() + .bucket(bucketName) + .key(objectKey) + .build(); + PutObjectResponse putObjectResponse = s3Client.putObject(putObjectRequest, RequestBody.empty()); + assertTrue("Failed to create empty bucket object for type.", putObjectResponse.sdkHttpResponse().isSuccessful()); + + // Execute the test case for each IOC type + for (String type : IOCType.types) { + // Create test feed + String feedName = "download_test_feed_name"; + String feedFormat = "STIX2"; + SourceConfigType sourceConfigType = SourceConfigType.S3_CUSTOM; + IntervalSchedule schedule = new IntervalSchedule(Instant.now(), 1, ChronoUnit.MINUTES); + List iocTypes = List.of(type); + + SATIFSourceConfigDto saTifSourceConfigDto = new SATIFSourceConfigDto( + null, + null, + feedName, + feedFormat, + sourceConfigType, + null, + null, + Instant.now(), + source, + null, + Instant.now(), + schedule, + null, + null, + Instant.now(), + null, + true, + iocTypes, + true + ); + + Exception exception = assertThrows(ResponseException.class, () -> + makeRequest(client(), "POST", SecurityAnalyticsPlugin.THREAT_INTEL_SOURCE_URI, Collections.emptyMap(), toHttpEntity(saTifSourceConfigDto)) + ); + + String expectedError = "{\"error\":{\"root_cause\":[{\"type\":\"status_exception\",\"reason\":\"No compatible Iocs were downloaded for config download_test_feed_name\"}],\"type\":\"status_exception\",\"reason\":\"No compatible Iocs were downloaded for config download_test_feed_name\"},\"status\":400}"; + assertTrue(exception.getMessage().contains(expectedError)); + } + } + + public void testWhenBucketObjectDoesNotExist() { + // Only run tests when required system params are provided + if (!canRunTests) return; + + // Confirm bucket object does not exist + HeadObjectRequest headObjectRequest = HeadObjectRequest.builder() + .bucket(bucketName) + .key(objectKey) + .build(); + assertThrows( + String.format("Object %s in bucket %s should not exist.", objectKey, bucketName), + NoSuchKeyException.class, () -> s3Client.headObject(headObjectRequest) + ); + + // Execute the test case for each IOC type + for (String type : IOCType.types) { + // Create test feed + String feedName = "download_test_feed_name"; + String feedFormat = "STIX2"; + SourceConfigType sourceConfigType = SourceConfigType.S3_CUSTOM; + IntervalSchedule schedule = new IntervalSchedule(Instant.now(), 1, ChronoUnit.MINUTES); + List iocTypes = List.of(type); + + SATIFSourceConfigDto saTifSourceConfigDto = new SATIFSourceConfigDto( + null, + null, + feedName, + feedFormat, + sourceConfigType, + null, + null, + Instant.now(), + source, + null, + Instant.now(), + schedule, + null, + null, + Instant.now(), + null, + true, + iocTypes, + true + ); + + Exception exception = assertThrows(ResponseException.class, () -> + makeRequest(client(), "POST", SecurityAnalyticsPlugin.THREAT_INTEL_SOURCE_URI, Collections.emptyMap(), toHttpEntity(saTifSourceConfigDto)) + ); + + String expectedError = "{\"error\":{\"root_cause\":[{\"type\":\"no_such_key_exception\",\"reason\":\"The specified key does not exist."; + assertTrue("Exception contains unexpected message: " + exception.getMessage(), exception.getMessage().contains(expectedError)); + } + } + + /** + * Calls the get source config api and checks if the last updated time is different from the time that was passed in + * @param createdId + * @param firstUpdatedTime + * @return + * @throws IOException + */ + protected boolean verifyJobRan(String createdId, String firstUpdatedTime) throws IOException { + Response response; + Map responseBody; + + // call get API to get the latest source config by ID + response = makeRequest(client(), "GET", SecurityAnalyticsPlugin.THREAT_INTEL_SOURCE_URI + "/" + createdId, Collections.emptyMap(), null); + responseBody = asMap(response); + + String returnedLastUpdatedTime = (String) ((Map) responseBody.get("source_config")).get("last_update_time"); + + if(firstUpdatedTime.equals(returnedLastUpdatedTime.toString()) == false) { + return true; + } + return false; + } } diff --git a/src/test/java/org/opensearch/securityanalytics/resthandler/SourceConfigWithoutS3RestApiIT.java b/src/test/java/org/opensearch/securityanalytics/resthandler/SourceConfigWithoutS3RestApiIT.java index cd651a012..3aa5f739a 100644 --- a/src/test/java/org/opensearch/securityanalytics/resthandler/SourceConfigWithoutS3RestApiIT.java +++ b/src/test/java/org/opensearch/securityanalytics/resthandler/SourceConfigWithoutS3RestApiIT.java @@ -45,7 +45,7 @@ public void testCreateIocUploadSourceConfig() throws IOException { List iocs = List.of(new STIX2IOCDto( "id", "name", - IOCType.ipv4_addr, + new IOCType(IOCType.IPV4_TYPE), "value", "severity", null, @@ -59,7 +59,7 @@ public void testCreateIocUploadSourceConfig() throws IOException { IocUploadSource iocUploadSource = new IocUploadSource(null, iocs); Boolean enabled = false; - List iocTypes = List.of("ipv4_addr"); + List iocTypes = List.of(IOCType.IPV4_TYPE); SATIFSourceConfigDto saTifSourceConfigDto = new SATIFSourceConfigDto( null, null, @@ -113,10 +113,10 @@ public void testCreateIocUploadSourceConfig() throws IOException { // Evaluate response int totalHits = (int) respMap.get(ListIOCsActionResponse.TOTAL_HITS_FIELD); - assertEquals(iocs.size(), totalHits); + assertTrue(iocs.size() < totalHits); //due to default feed leading to more iocs List> iocHits = (List>) respMap.get(ListIOCsActionResponse.HITS_FIELD); - assertEquals(iocs.size(), iocHits.size()); + assertTrue(iocs.size() < iocHits.size()); // Retrieve all IOCs by feed Ids iocResponse = makeRequest(client(), "GET", STIX2IOCGenerator.getListIOCsURI(), Map.of("feed_ids", createdId + ",random"), null); Assert.assertEquals(200, iocResponse.getStatusLine().getStatusCode()); @@ -129,16 +129,20 @@ public void testCreateIocUploadSourceConfig() throws IOException { iocHits = (List>) respMap.get(ListIOCsActionResponse.HITS_FIELD); assertEquals(iocs.size(), iocHits.size()); // Retrieve all IOCs by ip types - iocResponse = makeRequest(client(), "GET", STIX2IOCGenerator.getListIOCsURI(), Map.of(ListIOCsActionRequest.TYPE_FIELD, "ipv4_addr,domain_name"), null); + Map params = Map.of( + ListIOCsActionRequest.TYPE_FIELD, + String.format("%s,%s", IOCType.IPV4_TYPE, IOCType.DOMAIN_NAME_TYPE) + ); + iocResponse = makeRequest(client(), "GET", STIX2IOCGenerator.getListIOCsURI(), params, null); Assert.assertEquals(200, iocResponse.getStatusLine().getStatusCode()); respMap = asMap(iocResponse); // Evaluate response totalHits = (int) respMap.get(ListIOCsActionResponse.TOTAL_HITS_FIELD); - assertEquals(iocs.size(), totalHits); + assertTrue(iocs.size() < totalHits); iocHits = (List>) respMap.get(ListIOCsActionResponse.HITS_FIELD); - assertEquals(iocs.size(), iocHits.size()); + assertTrue(iocs.size() < iocHits.size()); } } diff --git a/src/test/java/org/opensearch/securityanalytics/resthandler/ThreatIntelMonitorRestApiIT.java b/src/test/java/org/opensearch/securityanalytics/resthandler/ThreatIntelMonitorRestApiIT.java index bec504072..26ee00495 100644 --- a/src/test/java/org/opensearch/securityanalytics/resthandler/ThreatIntelMonitorRestApiIT.java +++ b/src/test/java/org/opensearch/securityanalytics/resthandler/ThreatIntelMonitorRestApiIT.java @@ -9,14 +9,12 @@ import org.opensearch.common.xcontent.XContentFactory; import org.opensearch.commons.alerting.model.IntervalSchedule; import org.opensearch.commons.alerting.model.Monitor; -import org.opensearch.commons.alerting.model.Schedule; import org.opensearch.core.xcontent.ToXContent; import org.opensearch.search.SearchHit; import org.opensearch.securityanalytics.SecurityAnalyticsPlugin; import org.opensearch.securityanalytics.SecurityAnalyticsRestTestCase; import org.opensearch.securityanalytics.commons.model.IOCType; import org.opensearch.securityanalytics.model.STIX2IOC; -import org.opensearch.securityanalytics.model.threatintel.ThreatIntelAlert; import org.opensearch.securityanalytics.threatIntel.common.RefreshType; import org.opensearch.securityanalytics.threatIntel.common.SourceConfigType; import org.opensearch.securityanalytics.threatIntel.common.TIFJobState; @@ -61,7 +59,7 @@ private void indexIocs(List iocVals, String iocIndexName, int i1, String STIX2IOC stix2IOC = new STIX2IOC( iocId, "random", - IOCType.ipv4_addr, + new IOCType(IOCType.IPV4_TYPE), iocVals.get(i1), "", Instant.now(), @@ -97,8 +95,8 @@ private void indexTifSourceConfig(int num, String configId, String indexPattern, null, null, false, - new DefaultIocStoreConfig(List.of(new DefaultIocStoreConfig.IocToIndexDetails(IOCType.ipv4_addr, indexPattern, iocActiveIndex))), - List.of("ipv4_addr"), + new DefaultIocStoreConfig(List.of(new DefaultIocStoreConfig.IocToIndexDetails(new IOCType(IOCType.IPV4_TYPE), indexPattern, iocActiveIndex))), + List.of(IOCType.IPV4_TYPE), true ); String indexName = SecurityAnalyticsPlugin.JOB_INDEX_NAME; @@ -232,15 +230,15 @@ public static String getMatchAllRequest() { } public static ThreatIntelMonitorDto randomIocScanMonitorDto(String index) { - ThreatIntelTriggerDto t1 = new ThreatIntelTriggerDto(List.of(index, "randomIndex"), List.of("ipv4_addr", "domain_name"), emptyList(), "match", null, "severity"); - ThreatIntelTriggerDto t2 = new ThreatIntelTriggerDto(List.of("randomIndex"), List.of("domain_name"), emptyList(), "nomatch", null, "severity"); - ThreatIntelTriggerDto t3 = new ThreatIntelTriggerDto(emptyList(), List.of("domain_name"), emptyList(), "domainmatchsonomatch", null, "severity"); + ThreatIntelTriggerDto t1 = new ThreatIntelTriggerDto(List.of(index, "randomIndex"), List.of(IOCType.IPV4_TYPE, IOCType.DOMAIN_NAME_TYPE), emptyList(), "match", null, "severity"); + ThreatIntelTriggerDto t2 = new ThreatIntelTriggerDto(List.of("randomIndex"), List.of(IOCType.DOMAIN_NAME_TYPE), emptyList(), "nomatch", null, "severity"); + ThreatIntelTriggerDto t3 = new ThreatIntelTriggerDto(emptyList(), List.of(IOCType.DOMAIN_NAME_TYPE), emptyList(), "domainmatchsonomatch", null, "severity"); ThreatIntelTriggerDto t4 = new ThreatIntelTriggerDto(List.of(index), emptyList(), emptyList(), "indexmatch", null, "severity"); return new ThreatIntelMonitorDto( Monitor.NO_ID, randomAlphaOfLength(10), - List.of(new PerIocTypeScanInputDto("ipv4_addr", Map.of(index, List.of("ip")))), + List.of(new PerIocTypeScanInputDto(IOCType.IPV4_TYPE, Map.of(index, List.of("ip")))), new IntervalSchedule(1, ChronoUnit.MINUTES, Instant.now()), false, null, diff --git a/src/test/java/org/opensearch/securityanalytics/util/STIX2IOCGenerator.java b/src/test/java/org/opensearch/securityanalytics/util/STIX2IOCGenerator.java index a7c39bd72..59302beac 100644 --- a/src/test/java/org/opensearch/securityanalytics/util/STIX2IOCGenerator.java +++ b/src/test/java/org/opensearch/securityanalytics/util/STIX2IOCGenerator.java @@ -7,12 +7,10 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.opensearch.common.xcontent.XContentFactory; -import org.opensearch.commons.alerting.model.Table; import org.opensearch.core.common.bytes.BytesReference; import org.opensearch.core.xcontent.ToXContent; import org.opensearch.core.xcontent.XContentBuilder; import org.opensearch.securityanalytics.SecurityAnalyticsPlugin; -import org.opensearch.securityanalytics.action.ListIOCsActionRequest; import org.opensearch.securityanalytics.commons.model.IOC; import org.opensearch.securityanalytics.commons.model.IOCType; import org.opensearch.securityanalytics.commons.utils.testUtils.PojoGenerator; @@ -24,6 +22,8 @@ import java.io.OutputStream; import java.io.PrintWriter; import java.time.Instant; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -35,10 +35,8 @@ import static org.opensearch.test.OpenSearchTestCase.randomLong; public class STIX2IOCGenerator implements PojoGenerator { - List iocs; - - // Optional value. When not null, all IOCs generated will use this type. - IOCType type; + private List iocs; + private List types = IOCType.types.stream().map(IOCType::new).collect(Collectors.toList()); private final ObjectMapper objectMapper; @@ -46,6 +44,11 @@ public STIX2IOCGenerator() { this.objectMapper = new ObjectMapper(); } + public STIX2IOCGenerator(List types) { + this(); + this.types = types; + } + @Override public void write(final int numberOfIOCs, final OutputStream outputStream) { try (final PrintWriter printWriter = new PrintWriter(outputStream)) { @@ -53,10 +56,20 @@ public void write(final int numberOfIOCs, final OutputStream outputStream) { } } + /** + * For each IOCType in 'types', 'numberOfIOCs' will be generated in the bucket object. + * Defaults to generating 'numberOfIOCs' of each IOCType. + * @param numberOfIOCs the number of each IOCType to generate in the bucket object. + * @param printWriter prints formatted representations of objects to a text-output stream. + */ private void writeLines(final int numberOfIOCs, final PrintWriter printWriter) { - final List iocs = IntStream.range(0, numberOfIOCs) - .mapToObj(i -> randomIOC(type)) - .collect(Collectors.toList()); + final List iocs = new ArrayList<>(); + for (IOCType type : types) { + final List newIocs = IntStream.range(0, numberOfIOCs) + .mapToObj(i -> randomIOC(type)) + .collect(Collectors.toList()); + iocs.addAll(newIocs); + } this.iocs = iocs; iocs.forEach(ioc -> writeLine(ioc, printWriter)); } @@ -101,12 +114,8 @@ public List getIocs() { return iocs; } - public IOCType getType() { - return type; - } - - public void setType(IOCType type) { - this.type = type; + public List getTypes() { + return types; } public static STIX2IOC randomIOC( @@ -128,7 +137,7 @@ public static STIX2IOC randomIOC( name = randomLowerCaseString(); } if (type == null) { - type = IOCType.values()[randomInt(IOCType.values().length - 1)]; + type = new IOCType(IOCType.types.get(randomInt(IOCType.types.size() - 1))); } if (value == null) { value = randomLowerCaseString(); @@ -242,6 +251,7 @@ public static void assertIOCEqualsDTO(STIX2IOC ioc, STIX2IOCDto iocDto) { public static void assertEqualIOCs(STIX2IOC ioc, STIX2IOC newIoc) { assertNotNull(newIoc.getId()); assertEquals(ioc.getName(), newIoc.getName()); + assertEquals(ioc.getType().toString(), newIoc.getType().toString()); assertEquals(ioc.getValue(), newIoc.getValue()); assertEquals(ioc.getSeverity(), newIoc.getSeverity()); // assertEquals(ioc.getCreated(), newIoc.getCreated()); @@ -256,6 +266,7 @@ public static void assertEqualIOCs(STIX2IOC ioc, STIX2IOC newIoc) { public static void assertEqualIocDtos(STIX2IOCDto ioc, STIX2IOCDto newIoc) { assertNotNull(newIoc.getId()); assertEquals(ioc.getName(), newIoc.getName()); + assertEquals(ioc.getType().toString(), newIoc.getType().toString()); assertEquals(ioc.getValue(), newIoc.getValue()); assertEquals(ioc.getSeverity(), newIoc.getSeverity()); // assertEquals(ioc.getCreated(), newIoc.getCreated());

eol4@r3?XD_;X^z-|rJ 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ⅅOM@objD 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 Cdwl-@ delta 301352 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