From c989490a91ef9c6de6efeac7e4141afc94e0466b Mon Sep 17 00:00:00 2001 From: David Laufer Date: Thu, 2 Aug 2018 10:49:05 +0300 Subject: [PATCH 1/2] Advanced Hunting API - Add samples for Python --- .../windows-defender-atp/TOC.md | 1 + ...defender-advanced-threat-protection-new.md | 6 +- .../images/webapp-add-permission-2.png | Bin 11291 -> 14912 bytes .../images/webapp-create-key.png | Bin 22282 -> 28850 bytes ...ced-threat-protection-sample-powershell.md | 7 +- ...dvanced-threat-protection-sample-python.md | 139 ++++++++++++++++++ 6 files changed, 149 insertions(+), 4 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index f011865f79..425c6b1128 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -103,6 +103,7 @@ #### How to use APIs - Samples ##### [Schedule advanced Hunting using Microsoft Flow](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) ##### [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) +##### [Advanced Hunting using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md) ### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index b687e0a4bd..3541fd8546 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -146,7 +146,11 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co ### Using PowerShell -Refer to [Get token](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md#get-token) section in the Advanced Hunting document +Refer to [Get token using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md#get-token) + +### Using Python + +Refer to [Get token using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md#get-token) ### Using Curl diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png index 44708818effe2899ab49e1d7b9b474e885fa1658..9c00076cfdddd8010bba326ed4ae2d93888851bf 100644 GIT binary patch literal 14912 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 JU~buk|1a+D^>qLM literal 11291 zcmeHtX;@Rq)^1P%rD+5eg=SK_+YyP#U>F1$6m3wD8Dvs~Fq4R3POza7R0g#h5C}wC z8InK{kuV7XLDDiLD1-ZZean{Va5lLLW3-<~~V?Fa&GpnyP9n>Nb;Es&Te{=h$}C`TJh5P_mT3p{Ls zTAZ^0foih9S-B()Ja2)W@rVL}6gt*_rO1&LS3sb{kI!0LILG?T7fGtU-HI^$YUi9% z*WEuWt~j`Sw|7&@PqP&h4hMI?vt#}K>Wo#Ja);fk3DvqQH{jB#GU#;qnj+&GmSWJo znzYWd>HNU$YWn(5OH0Vhdp|1g)rl})UCgGJbt@_$VgAW4{lej z0d1iGUoQWT8q3?ZBHvlPlss|E{}J;2-l-qNso=yCQP=TSU9ih>8ac5SiBT|sm@js2 zufskm^Ia3s@#PqlvBy4f4nr;SSxx+GX&w%YTD%>#gqJMy+4wW+jG~w^4>iW_^T`y5-r8r|GbI@_8rF?2)S*XXg`|TdW%s6gUJtyI)3m7MM5=QaOie#Ek&||xH?^Pf? zf1jwT52;@?)9{21eRBbvx!kJGkfR8hF}~i_%OB3yjn_x|vQKr{e!HJ0B&|sVR6@i% zdnCuHNP=1YSdOoSQeCO0d^_*`#9-sfiOPi2!V9>{yl`o@tX3lI(PT3{DibQdcWNSQ z@7GzDY%RgW<=&HZN@#Bz@&Mc^0Pb5!2FCZ09LIp4y|+Y6b>8IoYl+~^2{ zU0Gp7ffI>Q856dPr>5mwu-uErw~ErK3V4YTRmHmV9s;(Ye2eV_HJf>6pSBHM2v#J8 zU2gP2!7)CbD7fG-FVOTn|Ho1Z+%6u@Y3@he6~<$+3mh8Wgn?t%RM`2StE1VP7zAdX z68i_ekLILm7t$4boX6XbdD_#?8dXkc3!;ie0R%d=agh3yUN=5p$Y3sfk4-owa0(b1 z=e1@^LRuJlCqqmZRbM~bUpQ^tm59+zPcJp;p3s&B?CwVhH()w1HLUgM$Gu^#C#P)7 zedB)0;fnjyrhY`9*`@7|1YD(+365Bep@?MRh!(<3Q|+4aJgO5j8(Vpf5W5 zD=(1Ax9D~u&CAESjtvS4A0_xGHpKyjGg-pbgFr8QmPoYT|}ga;S_~gM6ECR@8pB zYD&6$lkN`TYlI{6V{N7|nA>i2gBFw+{O-pcYgGY91j$in=G?~g1&+Tip33DrhUU(y zODtVU<>!lV3XR)XfDUO(}$k8aL>N-%4x<01f6HG8qFDD1bEzAw=fXKY-KDe%`RO+HR?yKjV9cAcVTX3?z8vW!bkx}dRoQHo1iEhYRJg;= z)X%8|q?AzDly_Ct73NbP;awi-l~`uB=6u4s^Q<$kf|xJf*}LcO27a;iuJiy@yYP5q zv3JU;vlyxt$nTzNmkF+=+;2*%P)<7i4P&t7w{O~2Wqzlw&;L>p;NqhQ@U$iD#?SBg z%Ns#<$2LJbH`p<48x_%)c8d~ML7-pd*J=8zcM=+At!OQ(0iTjjfEYLZ#lcxy|PX;ng{E8UGwVMr){3elNbPjTJ_E-GT~g?zvB z5}?KauXc~0?GGG1w5e-8^~MA-gmt}HoR|&WN@{3zW;RURI zqlRahx~*xS7w`zS{K14~Uo3J&@R!!~o6`WR{RNwFFb}?ot@3uq`$s9&OZZX5j@2DI zlzj{mIME}#{7b24>fM?l1Mwf zU6l0km5m8mQK3w;9GYA>J+eQQb2i(mqLqZ3IyMOpy2yU38c9D}gzwJC1}BcX&aUrv zMoM488es%6*R7X0ev^!gWUf`?eOH#cty6XbTJ~GlvUvwQ zlT?KI`K{`Ze(Zj){X@!fIk<9<06|^!{793p)MJ6`AGSbbPjK{v6fIi?1yhP zJue*47B>9C{i#Zg{>t4yA-p;BU9`LscS{u+QNEPC9GC^poD)?XDK^rEx2;V=bo!-xT|U7EE)xy!p!N?x(~vLF>%o)@awQ`n1f zNot1T5Uo+Dr%X{^TggW!| z#Y@9~#F$euP-*|PE67uBS+vj4K&awB; z^lu2|gH0?(Sl>hJG3!QfNt%t|4k1KcFQ6R0J^ zQVIZ!UbMQ>E`Le;=&ARBWA&E&3Av35CJ@`y*MXa(?+=+tJIk_F9%wk$Rjc0d*E*HkU}$zC=}=+X^y<4ED!poR0~ zVD0nQmuQpvxd%TIhGTgN&k3B;q=EE7d2#+oHu6HiXI%bJbQyZY+^i+3uJL)9)B^ z)GwAq+y^?@{wGK6reBhQCY}4;D3mc;y<2T#EvHet&K{v0BoJ&B9#jqy6a~|k`PDiY zH&_k4ZOq(E|If74ag)h<=IBH(KeoC5f|pKa!E-20g)-~I&aI-9Es z_4>F0w8JjJzP)p!p|af7A0ezqO$SIUc_1y;_%Qy*zQrf@smWejD3F^(<$?eJ#!@GM zcX#Yp)rNoYS;9KpIoz(gzt7OB_6yTVfj}Q#CVgMn*<zJZt+7u6qrJPccG~b} z9`ewR^{HP({EMNuk5l;dB;i9!lW6q=23+j}S&D~>!D}-&IH5^`Do!4CjyuRL9jWwe z*7YDd(6Xr)QT(J;t0%=Ym9=@T#HW!h5u9fnFk&WrIK` z&6Xpt{2Du4ZfQa2P@u?NRk(%cjp#!!mPD42L-in`rn-+0Uti)R+*v%m>pQfIJ<0ix zH)TdyJm#}~+yb5GFCYN|T~GW=H_8n+POvIrxc*PfLRUIRMc2A1Yblh;T6BN<@zdpo zOuZ^kH?87HSG9S5(?~7o_YgbV_}?a9Q<<-u=f7I4qw0|yxg)|bh~3^TnKmM9q2u1eq8~o|rS#u}anhf~-gP{-#GNl98OB*z<*X1A%ILjrQy+wTzxdl+ zPq!0VPTal^;`(_4!?>-9Ks_hcm!VxanoX+wBak_$>owC_r$Z~}E|0#y^EGvkVU4;ak z_$sEHJlo{?)BHe{zpFk$8cKU*My&|J zaD!Tm25`}GTC^hj&4Q>Q|ynV2j`lbnE1%L(=*BQOB&Fm6EEl%T7iR_a^i;nEfZmx}M&0?lX4%gG(va)c;pGrS>j;p#`Ae^~e6T%&=`> zvGakGonv2!2-vjc^~iiG0P|vf%UAJSn33PnWWb9kMh4l}R z?{(ro`x*PgfAWle0#v|`M#y_99F&KCvFLaLo?WcnP)EMmaCILvJa0H== zJ;s;^6ruf+m>*X_w4U0N39JuTMU?zig;<5w5kk-TUL7dWrA#%b4;`|TCgm_aR=yj% zLtcuQeP5X-A({MVDGW*idCvl_wV?7pJ>9SMh1wv8j_a^8j2F|{Y$0FtWNn*)e zBbKw8;8j%%S^nwE^q#jWwhhBQRof*-b3zlXc})cl5BHcb$wak`^7 z7B^aQB8z=oj5-cQw}`Um18`X)__$_$?rK&ow3?YVFIWch^2>}~({oaOHF}(hO22Xs zw^U16^YDZ~eHjZ{Fc6`*EVRb=LGa)@xOoKkL72B@O078BM6jLF2`}rWQQGMUwjOH~ z-$LGZVkR&@clE`C!j^SYa9lTq&uY{_155Zw-1un7U-24b5S3<|bNEW=={iOXnk6i$ z8~2U7qtH>)nhj(iPPKJ4y{z{Tr|FPFxmM$?^no|t z8(7z3H=wUGFq!L8yCHe|FFKwJ*G+Ik+hriDJ0@_nu=eUD_Vo_z z0PQr{1pUnnxpja@lJb;AD_CkE0#n!}snoPs5SEIMzFT~lEi013Zi^HWsH$F!yROe0XjP0eARbDjY~hjjbvBW5N0mJYfWs zvGJ=g{Jf0`iz05d8<$?q>oq=nW$UfvsP$0WeCdsURA7le%vCKXxXe>;$TDDLzd)c= zO&<1^6?ivC(*oc(nup6rTagLgP~KPzqLKX8gY||)-UaP%4(EQ_oBM**g5Ft<(`cTZGe27np^CBj7@0_qUZ`Z1|Cf%B+spA*@tyOksMfP z{*7m}$#Kwic~ z(}^M)oQgJb(y|GEfJ5;M$L$hhH3ML-4qi2vPicsLv3&SEWYi~UbA%qG+Pj&!{q^ND z=Sr?-p4gwLqYnwyZbH?Zi&FRGm|ANOI4V51B!`{IkjpJl%9?c6--u7Qa0|kQ*F`R2LEQYw zH-zCdPEfBVrkggV*U=YFb5YZ}IQ?A02|b2o;gT}Xk*~kpN_{9#(fz|{!swIn=!??s zp-K-Ys!o@xV@?7l`O%1NUqc8fcVr03@i=>gC3=``Hj-aMbM(L6?oqK-_O#XjQpi{` z)9N4(p|bUEOgJaxaMhWv2n2N*eX4pwd+;>L9iPcL?d%rb;)|eF6AHWb3i7H>^l+(d z{yCnzLLT}Dtr$Zyow#ONx|pcJ*HQ+>g}Gx|7qmFwC2q8_*1V97Um9Wa;Yoe)Etyv0 zM}e&^geFc82A_e+rjjwTpx-(MW!W)fapm!E@7fsq4)lNXpepGe<kfK!Vt&tlQRwC^6QB6b2q$B5sU}()J8#zUX%x%RiKJR$*Nq&)d($ zd)rFyl+F%xzZbz4jg=esCZghr-}g<->4q_z>dc5jtdDv* zbx&@neDNNdne-7!(QU~2x(iy&5$@>Id7vWA!V$P+_~v?HQx-mo`83$61-wnXqe;`4 zkk=))ezy9Ym8Veg-9>r)NHNt&j;_2o>TEu={g6F!0awlv$HFrd>Ij9RFc)y~!*tf` zCPt@jMW%4$$v8U%Y{+-#V9(%MYpte8M45eXKqbU*NUtScsdVY^fi6E>ypHX>lehE* zq@)8Wm* iYtcxe5#geky4w%3W^}3PMpp$fIdpiE>%Tld(cmbC%yL>m}VP84*R`B zU4ulq!;jv)bWjG8WAqr(wwd;dT0Bxw1=EtldE#1=A96yN?T*Ocu6~I@M?RSo?^S&HDFfM`&efi1T!sLi4m&4C<e7yHmv(tg9C#8y_8YFJG-QAS>W18j>7aiwvdPc3tQBBAqDxB<^ z)`c`j)<;bogQKxm>zqi>*GV?aasGtir0(&arys#GrxDkXg=7b2ER*%-7qTLGDm2J+ zHC6%63>OzYyr4k?_ULK#vU2*&{klOSr!#cQjHTkWp8`>%-DV${YIwR}2$yel1v%_< zQbh|~laKS zDeTs`;g8h1XiGKi;x*rLpMl4&ONuyy%4?d>S1-YtkWmA2Nq`>Yb}aKz_1&z} z@FE^iYje};@n1B6U91nza{0s$CXj1{#x@TnA>ab`&T8+uhs%w}8I4qk4knG;Wp-+` zJlZUa(HT0s$nkRC3hKVXNv^e=kqF0uT9X`g#f@=v%X^J=GJMhJEX|%-+ZN03JMNaS zG&d{KdI-w6bylG-`3nyYZesJD8n5=7QQ1_k1RJy~XzB(Z(p6M$G7|Efi7Yh2vpw`Uf;jqI-!lAPd-frUIQxsa@@1 zUyN+2+m2?lSlQ-gjPF33K98)GtanoCPYxxiZwAH5ABJ#4F90XpzlJb?7joBCKZgK- z{L&{s50^F}?*JU_ug3-dcN+ohVbn)f8%B&mnq6qz!)^pLGd?Ckz@gEAXl1=(-?uQ| zhjYQ>Bw`^oV!Gtd{6TI#e+X67kH}1F^=g2Xv>F;0(^;|Ats+hcn^HtGpnDArv!fi; zczl63Kukk*p;>!Sxgby}pr8ZSFUUYs^-~R`bxQgx9xK=H`tI$BJSCJ)nBTOd;^6?Q8lcDr??}UKsYlgRp!>9TV6@8=5;RW1O`?^nj%Q_IFl2@;nG+w5~G0-+)6q zQ(044U)hod=V9PjfirBEsz1LSsIXHDe)_^Ht`+B^9SI&6(0zUJh-@1cjc8ZY(Xhb`^c!GV z4?sZfk^20uWyZ&*Tsd<&Hz4Q4FUKHF$E49&~RL)=-rSHyDXgN=B?p|@HWq~YG|P& zypFioa}{zd+10EHaHd62!a&(M0g)q)^%1(ekl9KX8oT@xQJ(Q6a`h56bO+Ujd{#OM z*x0VO#0VDa1#oXf#c(}@U5B<$@N|TqV}Dev(;slyRgIEkvN~02vi6U6>>SYdcQ5$i#1w*0YG_ZPan%J$K>fZ+2zYQH+>}JrM)gTl7`4^09<ED7p!=IpciK3+v2@MM>y;L$$eXd51#H}t zSmrO?F7^SQLTdJVm8k})zXV9N%+!}VK9*&1RGH{ZxbrCgOrM>x!`URTAxgtSEXk3b zJ*v(XzwwOEtu?x+)?=!Wt>;1@_Bm8E{ayN_u29J8f1--615>7ONt0Z)YOM3P?zJw# zOhe+grCoap*n1PTCs!}~E}C8@t!lH(GHC*d5!PO7U>ZIO0(AhHfCGs28R~9l4yEvc zix!Hy1H>;#)sgWxr~w*wfc_bO{%4JCzyUF5`~h%)i{8QbJa6y6Pk8=i7WDrc|0yl} z_X?2(j?Asqz1F$n(+ybw`P=_zoAux9H3q+8d8+dT7+^ko!VZXjU6~uMePeYUzCKY2l znne*J9-{Kb6Q3%)UU%3w%YT?>c$J+4b`e82e29|O8M5u$har7BUzN;Hp%&v)_}L35 zE)=!AKQ9oe@p4}>({x;`pG9LuJoC850j+g7ktr4Ik2|D2r7YFet}hGi+rb6PgvfY| z$Dx*DcHxuwG-T1$Bo~%g&*D>Oemy%;GG$LnY8Z>5{tBI;Krji-O^a(q?*`RwV7b73 z#es8N`w!0UorgDMqyRf4iodaTDw7^aqORf)h}hy+-r5U+koC2=f;EINfcNitK!#&I96)CKh9 z#_tmmfolN7aE5CU1pa#yuT_jo(~PfZ;!{lU0xsPxO+f?4ICw2`w4tVnm1Tk>YbI2# z-_9$iUfOb0VKe1V*ZH!U;RSLOl89D~1MUGnj{op-Keu$l`yMdKi-{C6X~icJI1?+K z+wBMS2Ic;cdv%D!E>6Hbw8?e_0=5uu_C$M1RF;9fRF~9WUiMWnPVFAGeF}Y4^R>hl z`#l~O77V!;a{VK`J5?xsaivF)$*t-H;EKQ{X{gr&z;$U~)sxxoq1V$KJ&%Lt8bpnv z;jSlAC!JwtiJxH1^F1@VHx9Nzc0=sb|E`A%Y>9*`;ps+>J!>?+`u2?XP9V!NHi=oN zJYQs-BTw;kYiu2_BzeX1T7<6TY%QKT)O`a`Q{w-!83c0r%WnRYmK4{|rKm|@tF+ez z`BJvitO2pEe@-a2w#Rj@kNp{~SHhM5+tS{@$M7%x|0)9hpM0s~B3P4h7hb;C3md%- QAU5disq@wZOTXm*1xFDIRR910 diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-create-key.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-create-key.png index 2784135cc495e2d3f9d942dad623ed12dc4109e7..31e916edc59f75aed3a99e03b15eee1a5af2e692 100644 GIT binary patch literal 28850 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 An*aa+ diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md index fdbaa62d91..cfca29d851 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md @@ -65,14 +65,14 @@ Run the below ``` $query = 'RegistryEvents | limit 10' # Paste your own query here -$queryServiceUri = "https://api.securitycenter.windows.com/advancedqueries/query" +$url = "https://api.securitycenter.windows.com/advancedqueries/query" $headers = @{ 'Content-Type' = 'application/json' Accept = 'application/json' Authorization = "Bearer $aadToken" } $body = ConvertTo-Json -InputObject $query -$webResponse = Invoke-WebRequest -Method Post -Uri $queryServiceUri -Headers $headers -Body $body -ErrorAction Stop +$webResponse = Invoke-WebRequest -Method Post -Uri $url -Headers $headers -Body $body -ErrorAction Stop $response = $webResponse | ConvertFrom-Json $results = $response.Results $schema = $response.Schema @@ -102,11 +102,12 @@ $results | ConvertTo-Csv -NoTypeInformation | Set-Content file1.csv To output the results of the query in JSON format in file file1.json​ do the below: ``` -$results | ConvertTo-Json | Set-Content "file1.json" +$results | ConvertTo-Json | Set-Content file1.json ``` ## Related topic - [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) +- [Advanced Hunting using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md) - [Schedule Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) - [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md new file mode 100644 index 0000000000..b26196cbb3 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md @@ -0,0 +1,139 @@ +--- +title: Advanced Hunting API +description: Use this API to run advanced queries +keywords: apis, supported apis, advanced hunting, query +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 30/07/2018 +--- + +# Advanced Hunting using Python + +Run advanced queries using Python. Please read about [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) before. + +In this section we share Python samples to retrieve a token and use it to run a query. + +>**Prerequisite**: You first need to [create an app](exposed-apis-windows-defender-advanced-threat-protection-new.md). + +## Get token + +- Run the below + +``` + +import json +import urllib.request +import urllib.parse + +tenantId = '00000000-0000-0000-0000-000000000000' # Paste your own tenant ID here +appId = '11111111-1111-1111-1111-111111111111' # Paste your own app ID here +appSecret = '22222222-2222-2222-2222-222222222222' # Paste your own app secret here + +url = "https://login.windows.net/%s/oauth2/token" % (tenantId) + +resourceAppIdUri = 'https://securitycenter.onmicrosoft.com/windowsatpservice' + +body = { + 'resource' : resourceAppIdUri, + 'client_id' : appId, + 'client_secret' : appSecret, + 'grant_type' : 'client_credentials' +} + +data = urllib.parse.urlencode(body).encode("utf-8") + +req = urllib.request.Request(url, data) +response = urllib.request.urlopen(req) +jsonResponse = json.loads(response.read()) +aadToken = jsonResponse["access_token"] + +``` + +where +- $tenantId: ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) +- $appId: ID of your AAD app (the app must have 'Run advanced queries' permission to WDATP) +- $appSecret: Secret of your AAD app + +## Run query + +Run the below + +``` +query = 'RegistryEvents | limit 10' # Paste your own query here + +url = "https://api.securitycenter.windows.com/advancedqueries/query" +headers = { + 'Content-Type' : 'application/json', + 'Accept' : 'application/json', + 'Authorization' : "Bearer " + aadToken +} + +data = json.dumps(query).encode("utf-8") + +req = urllib.request.Request(url, data, headers) +response = urllib.request.urlopen(req) +jsonResponse = json.loads(response.read()) +schema = jsonResponse["Schema"] +results = jsonResponse["Results"] + +``` + +- schema contains the schema of the results of your query +- results contains the results of your query + +### Complex queries + +If you want to run complex queries (or multilines queries), save your query in a file and, instead of the first line in the above sample, run the below command: + +``` +queryFile = open("D:\\Temp\\myQuery.txt", 'r') # Replace with the path to your file +query = queryFile.read() +queryFile.close() +``` + +## Work with query results + +You can now use the query results. + +To iterate over the results do the below: + +``` +for result in results: + print(result) # Prints the whole result + print(result["EventTime"]) # Prints only the property 'EventTime' from the result +``` + + +To output the results of the query in CSV format in file file1.csv do the below: + +``` +import csv + +outputFile = open("D:\\Temp\\file1.csv", 'w') +output = csv.writer(outputFile) +output.writerow(results[0].keys()) +for result in results: + output.writerow(result.values()) +outputFile.close() +``` + +To output the results of the query in JSON format in file file1.json​ do the below: + +``` +outputFile = open("D:\\Temp\\file1.json", 'w') +json.dump(results, outputFile) +outputFile.close() +``` + + +## Related topic +- [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) +- [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) +- [Schedule Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) +- [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md) From 5be088cf70f71f8f78ce0662dcbf30efe6c0fa6f Mon Sep 17 00:00:00 2001 From: David Laufer Date: Thu, 2 Aug 2018 11:18:56 +0300 Subject: [PATCH 2/2] Fixes --- ...-defender-advanced-threat-protection-sample-python.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md index b26196cbb3..01ac9c558a 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md @@ -56,9 +56,9 @@ aadToken = jsonResponse["access_token"] ``` where -- $tenantId: ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) -- $appId: ID of your AAD app (the app must have 'Run advanced queries' permission to WDATP) -- $appSecret: Secret of your AAD app +- tenantId: ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) +- appId: ID of your AAD app (the app must have 'Run advanced queries' permission to WDATP) +- appSecret: Secret of your AAD app ## Run query @@ -107,6 +107,8 @@ To iterate over the results do the below: for result in results: print(result) # Prints the whole result print(result["EventTime"]) # Prints only the property 'EventTime' from the result + + ``` @@ -120,6 +122,7 @@ output = csv.writer(outputFile) output.writerow(results[0].keys()) for result in results: output.writerow(result.values()) + outputFile.close() ```