From 3f16aaee624ee582ebe1ef3e10057f66fed2c944 Mon Sep 17 00:00:00 2001 From: Mathieu Tarral Date: Thu, 11 May 2023 19:26:18 +0200 Subject: [PATCH 1/2] docs: add section to document Github Actions integration --- docs/source/how_to/github_actions.md | 108 +++++++++++++++++++++++ docs/source/how_to/kafl_runner_added.png | Bin 0 -> 22963 bytes docs/source/index.md | 7 ++ 3 files changed, 115 insertions(+) create mode 100644 docs/source/how_to/github_actions.md create mode 100644 docs/source/how_to/kafl_runner_added.png diff --git a/docs/source/how_to/github_actions.md b/docs/source/how_to/github_actions.md new file mode 100644 index 00000000..474fa0a9 --- /dev/null +++ b/docs/source/how_to/github_actions.md @@ -0,0 +1,108 @@ +# Github Actions CI/CD + +kAFL can be integrated into your Github Actions CI/CD pipeline, thanks to the [`IntelLabs/kafl.actions`](https://github.com/IntelLabs/kafl.actions). + +It acts as a basic-block to compose your workflows with kAFL. + +With this Action you can: + +- automate the fuzzing process of your target and building a reusable workflow +- delegate the kAFL setup from your local machine to a reproducible infrastucture +- build a regression test suite, continuously updated with new seeds, to be executed at your convenience (every PR, day, week, ...) + +Requirements: + +- A kAFL-compatible server (**Intel PT**) acting as [Github Action Self-Hosted Runner](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners) + + +## 1 - Deploying the kernel + +This first step will install the kAFL on the server of your choice. + +We can leverage kAFL's [Ansible playbook](../reference/deployment.md) to automate this part. + +```bash +cd kAFL +# rewrite the Ansible inventory to deploy remotely on a specified server +echo 'kafl-actions-runner.example.com' > deploy/inventory +# only deploy the kernel +make deploy -- --tags kernel +``` + +:::{note} +This command will: +- install the kernel +- update GRUB +- **reboot** the server +::: + +➡️ Once this is done, you should find a `-nyx` tag in your server's `uname` +```bash +uname -a | grep nyx +... 6.0.0-nyx+ ... +``` + +## 2 - Setting up Docker + +[`kafl.actions`](https://github.com/IntelLabs/kafl.actions) will pull the latest [`intellabs/kafl`](https://hub.docker.com/r/intellabs/kafl) Docker image to run the kAFL userspace. + +Let's setup Docker on the runner as well ! + +➡️ [Install Docker Engine on Ubuntu](https://docs.docker.com/engine/install/ubuntu/) + +## 3 - Setup the Github Actions Runner + +Finally you can follow Github's official guide to add a [Self-Hosted Runner](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners#adding-a-self-hosted-runner-to-a-repository) to your repository. + +You should now have a runner available under `Settings` `Actions` `Runners` + +![kafl_runner](kafl_runner_added.png) + +## 4 - Using `kafl.actions` + +Go check [`kafl.actions`](https://github.com/IntelLabs/kafl.actions)'s README and the example [`kernel.yml`](https://github.com/IntelLabs/kafl.actions/blob/master/.github/workflows/kernel.yml) to fuzz the Linux kernel ! + +It boils down to invoking the action, specifing the subcommand, the workdir (to be mounted in the container), and a few `extra_args` for the kAFL command line. + +```yaml + - name: Fuzz Linux kernel + uses: IntelLabs/kafl.actions@master + with: + action: fuzz +``` + +Build your own workflows, automate and fuzz all the things (continuously) ! + +:::{note} +The default timeout for a Github Action's job is limited to `6h`. + +It's possible to bypass this limit by specifying a higher value in [`jobs..timeout-minutes`](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes). + +For example, you can set it to 2 weeks: +```yaml +jobs: + fuzz: + # bypass 6h limitation + # set to 2 weeks max job execution time + # 60 * 24 * 7 * 2 = 20160 minutes + timeout-minutes: 20160 +``` + +And then limit your target fuzzing to any value you want (under that threshold): +```yaml + - name: Fuzz Linux kernel + uses: IntelLabs/kafl.actions@master + with: + action: fuzz + # 3 days + # 60 * 60 * 24 * 3 = 259200 seconds + timeout: 259200 +``` +````{warning} +[kafl.actions](https://github.com/IntelLabs/kafl.actions)'s fuzz timeout is specified in **seconds**, not minutes. +```` +::: + +## References + +The [`kafl.actions`](https://github.com/IntelLabs/kafl.actions) Github Action has been introduced to the [Tianocore community meeting](https://www.youtube.com/watch?v=0adtDjSdSjc&t=230s) on May 4th 2023. diff --git a/docs/source/how_to/kafl_runner_added.png b/docs/source/how_to/kafl_runner_added.png new file mode 100644 index 0000000000000000000000000000000000000000..e065f076bf5bc6d67948da4de6e5affe8291b94c GIT binary patch literal 22963 zcmdqIXH=8h(>IKjBZ%lhEGe0=smZvcXQbFw$W`Kp2`^h z-6u!(?vMH0f9%i0^LN1h_rRo!WDpO}P?DW9Jo`ugGJ zhnL4+>I~mbz9^^v*Gb_wmv_0(pN*uH#a@!|yrqhEVWTg7d6uuHdiZDF`2+a}EM5iu z`}U!-j!DFu-plHTsBd)qqw_e~#ngo?E!QS^w8XEqxsit;C={v*6t}~LM5|ZmLhAeW z`QqV8n^;*={Bz~@^zh!G_CC*!-B$Z^@%WC(iTw+mq>~AU_Afq4{f{;2fc~H}8^!ho z{5&B*bXboLq?PF4RXxD=pJSK$d3ix#d)DMcK1mGLR2mhNvp)qooz^v;rMsAQv-BY% zt$!+fXJ+V|`tJCX&8t2$9>Jl8nf-Z%gc`4Ww#}voOURox6rSA#6BGP1+~)~3>Xo%2 zJ=FYf<$|6L8%Tig&7B&-8uPAjg^khOFlxM=WOHd$xauDvnGJ5d*9^F+qZ6H%Yd9e->v4v5-y|F7xgU&ZIbr4!m|dczW}$fU-4Dium7h`j9r5^l z@NCFwQ7@6PDti;8iISYWWs{r%xW}zTeeFpoK2;5Ye%o&rEpA>rPm~H-OZvM!TXn<; z?aLTpVn?h4>eBnKG%AO(Zuj_^7vwfU36izr1zknp*&u-0=vG@Tj{ISZ__T5fI_+j_ z)PJqO4A&g^;=xNuP0oF#iGTNce(nS`?n_P6{v35~;U2==in(~64mUzS;8rN)zWe&v zr)NgngB=A_T@w>~GjjNLW35gi2y%^bcYq?c_qI_Wctpz+(NT@Umnw$dsdE z$NCOXcC7`Z31gerO^mzR5uqZY_CiNyxA_iFI4*cF~gb=vpZAUqn=NU z5T_{inzJFHVV!8#Sd1cB-2qrmUet1ONZ(lP+}^Pt%*UNiGM)Zl0Ha#TI}CQE>t?H9 z)I;*KE8Vc#5=5K?lF<({5g ze2oXuzI5n53A$nexE{MCs!hGE8J6#$FkuM}LlWw-I;}ygl6IiwB~F=W`8Iw$IBR&f zAIcmT^uVT43cKz#AB#1{tHg_VBEDBy*`G^O+}>b%#5|b7dXe2S5Rb(O*PWIqz!W`}?vvsY#Z|vX-o5T5DH3 zx*#CkOK;-k)#M!|*g4cLGcf1MD){}LF%*S(cn!ODwtf-I zS3_IGS#@o;%Z=}RNU~a5k3h@y_$=_tt+dCQ=&i3>N&(Zd9C$9{ zYCqB1+#|_~SvSmiXq4`g-Bo-x4e%uHX#FHQZbN&Bu87Uyi=Uee(M5OfiZRE7Q6S4X zOxGEK0j#+t!IoB zhQE7wvwD5SFn|z)%RK_|kmG~LjK0-yxE8#ehB}cxd%W@Snyti^dP&1PKVR!K<@P6M z!Kj8`5W8utl~r2CC_?$Zd;mMVO?36gQ$S^~$8OH8uoh%M@v$q|*qjFvtQUac6!p{O z!qo6XD8eTTe@sS6YjI}LdrXUie5dUiC3j^lFd z)uM%_{?Jy&cX<`q!qH&yL0&#(YCB8$qPs0JuVTxx@*qemWL=ueqI*vCaGH~Qalm*! zI=}*rnmNU0t;ce1&1tkExEHORMwQ<8Jl@wVGt65hYGQS$CTB^b<}I;PQf=p_p+*dQ zzD2kJjJqn`L;7R_Pz-$}CTI{$y63r@lxzWsIAqs5EF8%6-zhQC067=EKDc2j4!<8+ z@BU4G(k%f=S5M)hK`XuCknv=Xop&lO*5YIuqN&}fk6fXqu^IC1OQy@#Ti%TnK$0zV z)+w!OS-R)(PS}Q!jgyY%a38-k3Fe8GNYw^aXJ6}Lu`TRy(B@~W?&~GzU9z$|-Q79o zLUgqq8ckxf!s6R|v-7jvuxH9z>}KtGmMgWc0J7~GA4wf@al0!bG?c)8Jt$bW=;Kt1Msi`I zEO>RaA+E^5Vkfx2IfiS0UvC?{Lp4k1^{?ri+;khaYpXkR*Up^}Zi7zZJd$TN47ij{ zya`79i3`AYqz;^k3L?Rsd+$_?orJWQVw9R4M)8Txa~bK_gb0}FQ6LS zWK)#Uo8|XTWv%^E+ql|mYWd$inK$gnVOQ$Da)p}$K61t7>`7Nc0 zx#;#215#I??_1Qg^v)6O(bdcmz8T;kA{G>{sk$Evb`CuS zU&{v3mPCEu1?a|P#VIV*cC8)UD3z;{>e6r+vTbhohu>BfI-nNgxdz3J=sGBWnUD~( z9o@h}*U%1;T4D~+rl*u}q?hBBvFYS0)&z_(fzr5e@TW*U{Tj{VYxw7dIj%6lZHR;{ zKsuo(fX#MRhXY?Fi%=4lCeJrAs(;+(gQtW%c%dOzWWj+cD3Cs>{8T6+MdZUm!I z60}9gb;K&;Wf zc1#YVrR{t0tXNvZyuP)4qumId<+dIS^Ze<2>WjYu*(Mp}$@s7{VdM!u7OHzanAwF{ zDB4gg^>UCGW@h9xyIdW`nu2iCAg`$V`Y$(7TIbH%!mM&$i+QzE9}LA744^SqR%HVd z3r-uE`qND?PvtMGpq+fN=<24yb6e0Zud~(46KG*aEu1q*0Zfsvoz=Ax(2~)2-O{}- zXTf>@Y>FwD7-^Z~RwaRhnZ-Hp4VkCs(Kfw_WZ4H{9}%GbGrr}A*1GkK6F{x_O-I*! zwY7(*R_HUQ=2c6bM%w z5pXz{caUfd=biu?%)-Tbp0Yz}MCtp1WWHkaR9Quqv7TgpKmVhrgflPcuxALmBZt<^)~YZj@&O|ZqDrp@2MJ3~+$ z6aF@ga~6XQ%^?siC2)PsK&a=S5&aR23P2s10-Q&5L+t@UMS_VS9dtPY%|;3${a#MZ;R9aWs_n4!B2v zn7+m5ec6756O$OPeb0eAh@;W;>NI!wo46~@Em=b}&Sd-A?{{iV%>iiCB1|M|;MLb9 zPLsk;#F-#^e*Jo3a|m2;4_1Ak@+YxP zdkB>Y7oPXak`_!Y_^GFBVZyGXNg*pCAv@RCQlDFyJKh;cHQRQQtCV88vnrR!zc!2P zAGwWcI#^fBBAZ7Y?A+B?&*9J46Dg3JhpKCQ*x*$@1lVAEY%8m6(Z8N;Hst}{?)k@V zHT-ZJj=4P@&)=hyDxm=`gRB&{^Y@8Z{3Pi|C(3 zJ@a*2_{xA_#6uu`#g{F;&`eG%G}Hxel~d))8^hjJSbuyVwSQ2^31s8K>W;Z!m)^Z_ zdSKst3(P^jgzSpl&##wt2pR%}JoquoF)%$APj|o0g_q6Y0UYQ}wc@{_|6tlclCTn$m#VD`CkE z9fe1Z(x`g)OAKMnu$ESCvG%+KfN&WVzSA%8=a`q4Eq$yL>k8*Si`qSNSxv6h1sQM* z@{=8MeSMy>XEz2qgPS}W$TGpml}iX1XKiPE=8lk)YAE12DkYvWO>!)ms9Xg-qL za;yb&w$R`1$aAF#hg^o%x=cA@?tq=?Oo$_phz;r7s6&oyO{u&H!%a0&C$$&U@zrps z``fr%si*dZ)PG#r)C6)%)dqJQgzgo~4TE2IU4MyK1LNV0;R55X#jrS71d!Qfy~5`9C#zM9uZ4ditH&BVU3$B+MHA-EanS{HE#{VseQURl4xf z&uPji#x0+}h5sJ8P*SgbHdjA1aWo)l?wF-}7mBsfqiByN>lu6Z?oBRgt!SPs`8aTG!V_`M;wQMsO}}yGv`md# zsj5uPz>9L0#Y#v0`gkso)coJ*2SHtcn#U}LTI6_&)v7A~x(}NV4@aqD5Z+4zOHmr6 z;dcH1#+CYu_D@_q&##>SgK_ZuYxq~^pSAtt@0Wi2|L|13`U9!_|GSCxVL}bJRqSa0 zd=qsM-CEdXOwNa*u{g-a?7UcU-71DyGgP~V`ibKm= zk)|Tp*4BrS6UxfkrQR~I-e#YM2&Q*2o~&t;+@XW96eXSldvLgHDyTkr4z z$Sq4d#-W=o<2hRqHp-PaF@4SB{deP&mF_{I(>h8+=VCUUR?p2;bUkd!cfeB@ZvhNN zDMDfiJ&jM&_((xzO_ScCx$F0eFz0=GjWS6`9fm&r^6N>5$IP)k3IiKq(Z{PtkW3;~ z)44*7SG4ccV+2WKz(K{b5pqsPdYAuwK09wXsm9lTc^*~+c12S9Kko8ud&-5-@JOH2 zE7nYi3>2f#x(;zv4sawMUOkE~nT8;0isRq)c3yctce6~!TkO6w21}LZxgW8I$fenj zJW!|+2~Q{8q)vepl!6<5R7T(f4^=v**^ktDH?oUT!wYH!Wwd|^3enw>`IOK&xTQA~ z2`f*+*4ktO#V4M>P@&lJ2>byOf0Zcf2z6`>>x(5*6P-}(B_08>;h*xkq>UIq#BgOj zUrbFLlBXkKT74#vH6c(eo0s|H_uUb*I4q+G7LY&Mywddv6ycI4z-b`u1Z)z!uh^K<=I0V|(Nj~d@SwGb)hp_DZ?|aq#Y?6OsV-+_(hUMx zEvo%ynwGvZ(G=PG%^`B4 z0i5cnZ4`%Wn<h!*mIB<}?xhqf&A}JdZdGVLSzI|2&y}T^ z#?cqsJucn6cTTa7x@Gr`tnWE{0F7bz$Zt^%Kg>ix{JAajK|o-l`O!!Ts0_+gQd(5>*GW_yQ%Ua{Un0 zdxeeE8?Nv2P87bIcRpIwQXZP>UKl|e>9kGdDf0yg4T?Idm*MJ#6l8zpsTRzTTzR}EE)xCWX0hmG(+7+6H){?fKZTTiZPO@k33dJ% z7JaiSBBUw*>Tx7u14W!GrHh=+Jai&qLDFUN8O}d2RSD;azJNc6$JA@;J8Tcm&-p@t zmmrTzi!Zh)MuwTwTOeV4jB1Wv1MG_g0n@WRl@LEUGY+Jw8oOmtsU(WCG^$wxnOq4otF4pX zUK-ns@0F|;jKJhyT`bv%#lK)S;66nodR7L-ZPCRoy97*lX3xrSz0-tiJZH3(-H>&| z-6-^&^q8@%o#DL}tcNM_2Yx=cgGMlplWflEMy{{E@@kyE+Z zOlMcXS<&0&e%myJ_dQDZcjC3pvL`Ot9_78|7sG588BSt}6`{9@KqIdDHG*TU=q)ok z%CHu_eion*Az-U0UUEpfgw*Pl67ZP?pumtmbM4DpY6z!L zUF#;0S7=eF^}2^f&3$ox%KRD>LR#F+QnH}Gb3uE4Q3d;V@z-URLnsbtV5h`j2Sl>! zOJLs@1*4ObRt#+#2KI?w+bN0gAKsL<@n+m>8*v(bI+Pi*IgmO@5j;Inx_ey+`meHJ z-Y{;bsqxJ_#?PVF-;9bg_BZclPA?s8ML7#%@cQDBZYeY$lz+1EV6(K(vVN4{dgt%4 z=6+}}$aBxfL5;U1>P*}w9_-=|+)5Y`~ z)tMKEK+Ll7c4}!}igBCQj%RC!7X_DAqi?B1)9zf5=Pz5tm?~PduZCh0G z*0bvCqC-@_XZa=SJ(RbxWswH#(30&GR+u9HU^4FP~JrSb^rUt1!K4%t=K!yRO8 z%P3=WOiVvqy^SPHuHA_(Ss#&#U$-fhC_ZmGa)G2Z+Bhwt@O~?_ik_XKrh0V+e?Ftb z9+@_KOSqEbLcC(=^PxC@ii!KjJ+y)e4FVMga^JfPE@XBv%kYFB2$iJqqhW6e5vg88 z_0>t zJ27wkt4YXQ=zV9_DCOM8he4?WQuUL;=nBN3JIWtkK4=t4O3r_f=d?KvsVZ(R=`C2? zKL1qHJPESX;%_e_(0pwbR*U8XMm0pcKc^>|ymYz+QvK^)i%VCF%u1H@^AGlx^TLmH zFM*lra#NK;VaPWC9X;meg{NW5s81ab{c1bW-}S0&&z~u4cjnbE24rDqyF&8$wC~FJ z#%LNL?fI<`Nua^I4*gx#^_c1#@y4@bx7N0CF`Qap5&m{*dO1_K2V>n9_r`2)n^5nS zd1B@`sQ5xyXK~+&4_9ATG}$)G71U*tj-OWp5fVS$ZGD&+E5#^$zka*lD=F`E$mLgE?Bw?{j%o1ynS@5G2oFn^l)CG3Xa# zwN=|I#0RkWZ>w28aci|3!wH`u<>C679h1wg_ z!y?TBB&{>eibc6TC~R)Mf?Nsk%&QQ0Wh?&1vqxM7nz?!p*#1yVxX9_dN4l48F-Ic` zMDAxbfKA9?&+ldFd)_6i;|`s2vi@pV6!ynjOw4?`qilt~?&_f9!Sd9%l9Yr_W_h35 zzo|1_HAIzKF<~Qr2*!@E@P?(Jl-G*y8~W=7vLXRxf-G{7p~ z0}V?gD36JaHorY<1IAIGWAR88Oe8(3;o*qi;&;-em{<*uM|YPOF5T=1CKet*dJeTF zJ^WZ#LXJ@H)n2*LVEmA^1K5UwDW-TAiH~Bkl9CXyh!{OZ0T-60=iq7Ia}F^mOX;Cgmrxq0mw_G0N#uqZu`M2$q7v8j!P~ zv7oJTGf+Avrupmv;1G0uj8(Z1yX5O<_=MR>T+&K%+?x(6MV^B6g8;Vi(d@zB;F`+?Q1JO50&m zFvB6_Bzx>1c(JP8WXzq2mcG&Hr}9_A*Ngo#RNrxiTGIbDmHHi#EW?Z(0dtq-QJIf) z4PCkK6Ba0OZ!}{X%?PhV%ws3?3?9|hgD=%zeLbDGCSxjqUJM#JEUNmbRQ5<&aDbx+ zv0jVv{F&&})Sjt{$>m@tLsNPq;ph!com;2t{f;v{-;bV+s#FYm8nbek+Vmo5-M991 zH}lQaFEC2do4*~so0Y$NgToyRM*}$qSLn3w0eH2?TB&4b8)A-@_^~2n=oaAf9TmQo z>F&u-YsibbfKyK)TCRTL3DGULYC+LW#+YMuY^wm4uZ?iaW`@QvhpqwA!X$52N%i`^ z6z<8hhIREa^{)z4(lV`bgu1h%ou01Eo`4$p4|K#8@pqC)a|z>ze)7LdLU%X+(>J5z zH*${jR&EKBVMU1Jv)aLbG~+!ccLNh@BL7s|ZDeYdk}RPXVD zK6-(!cu)2V+A2uN+UvM6n3F@lS3``FX_za@*>LY zTl$!+2P@J(m6VCGDPlPsTC6wCGyENwI5;YcCaOl*h}eLYpGY`AlB$O+WOT80`YK`+ zR;mFfcXbqN={DK^Iya&!yS*}qVmHKN0cXD!;&Rh>qCo0rxXjy@$xxidT_##^(6nC?$2Irg93QwmDv=H?vpf22D z6>QkXp6(WGwfh9|bsznG3UWmgwaf9Y8b z__iFPLSW}EmDDp*%t$>RQ=YeU_+5AEC4&*BC{kr3fzWcX z>{z&;|Fv67sE>C^SczZSPtWHCl=*n9$3%w3mAm)FO}-rlk=4Rd)Q)vzl^A`_p1&Ih zuvBUvKXJ_iH65hgP?u)>JrsE|wsaUroXd1@F0S{>H%3)-_Lho^)lft3bQ`s7m~0XnhWC$6Hf191b3_$I+9H+S^qrorc^yD})F6x!$RC@E*;uU(In z0hqt%ppcwe=1EYYYT!7uSliSwVaJz{6K7!~Xqb{6LE@z~{8a*cp0U8O%4Vxxhe?RJ zGCP{ogAC;iiK^$Tui7gVZMEt??c?j#THTawTBw=|O1Cw>tE zMh8!sn~mSBFU~v>kB?=Qu`etTa%zyX|}Xyig`H5C_WcGP4IT=m4bE#aM69p z^c07`t;`j!Uo^skJ>zF~DH}%@BZgvE1C3W~v&2?fg-M3KdpjMuXRUDl$NB`^8Ti;L ze+W=sd~RZWx%Wveqnhbr{+%_o_Bg&0_|HFc8}cSh{1(GV1zVa)9GcD6cDR0EIirLD zYau5QqPZr7U8f5>kM2jRK_r;j07)&#VqnMv>GJF6-`N%80WiV)jBKyzIeTlW* zPT_#HbXRy+SlbnJ1(}e50Sq-{8S2p~+203SjlF(B>sU+Q{3xU5^u}u&>8}nESh<`_L1=53%reF)!MO5hrwMpOc@wtpgoRzj zW>zJGoI5EUB#5;ttxqI>AX-@|E);^L|6-`I!6Oqc2GeTO(w`JDRejzVgZf!b2a>== zg0Hw=^SJ)JIB8Lj+dV1QGoy2uhbL9z9x@#KbF$mKYl!b256`ExPdg#Zt-fzjkm|k6 z)3oRKA%DIYKFz#sP_Yd*Aukl%T?iP0r{fJodIN=o_#a+h zGfJhkN8jCty<@ZX(^h%htP>IdXT&}NB~ievg~HWf?D}N&8fib$$iuT0J()8hUpQI7 z42HD4t^LQOpiXY6)eMlE>h3!wy^+P%sP&oNZ}_}O-{5~w$Nld}DPqr%GOoXde6OdZ z+7r%JRDm@@(l4aCHv^50v0|OX$aL+GbxPu_OkhHFW0BA5>KDEoyilwinhJ< z-M7_fHDHdChZCiATMqb};s1Nkw5T&!q?8cVhOz2qouYTZlG=;UBZF63Hj)kS{6{9M z2u%yAv+=X5au+09g6+kHYC|1N{y>Q!PD(k!9$)t^+x0DTBQ4H{c$crZI^a{6e>y;H zc(Q=<>Y4jrib~_0(^yVv9|f(6Rp}yFJsZV-eu#QwpZ$Y=63g9BGuEL~P0b(&i*j!q zNF>LmBEZDc79H1D=ncSsnhb)|M6xiusW)oHgY*MpW>l{QzIYtesz#~saqJJfgYQd?5c%Xe(w33ew41fHrBFy$e5K% zIJEldr7Ts`6y--2>MSm?Cz*E^zj0K3ngv|60VUHkm6pmKd@}2T8Ti8}RktOzPbin> zCTD#Jx*>Ruw7@%~;tQtxwa*vi2`p91&KbRmcAAVPWXs9>4MRhAnfIMrEe1Wu5e&e8kxX%u4d;sP~IF>zfzP%>KX zK%ad7F+LA6`c$w7)APa4{ZSR%yy_1e(BbX8(@fl)h zsk=R6Uy04O@_N(s^GP@f==B0_{6gEIb9)BkkY~+byAtw2uwrN_og6rU%sF=-_k=1yj>Vvj z20rXXDwzR1Uz@(4T+DOQj7z1(zB}5nuD*nJ7qYu(V)4j4Y8-UL_>msT#^qrm-2}RH z4VMv$x+57bVFt3@9t8(dMb+Z7RHO&z(o5 z6W5EVL$16b;)jdy1^bKPbLG|PJw50AfzNFYW%$wqm-SNC6a=SVELqGi^dNYUb22NG z0jPq3Ix9fetxxXu4Z~GUHQk{MlUcoPN+O|o>J#DM*k1})cl`sJJw+xg;bhmB>(IJG zwX(iaIWJ_#-3&84v{J#RKyq3(;E>dL)jUGb*XP5uM^|raxL5C9&1D$g?DMM4{)d%P z8_DQ;=!Q^|gr{ z(y28mjAe#M?9sJViI_8{P_==ORI4TZ_fOTGJuj5bnKwkWAoR3o#ACb#Otwj+Pj213 z3cY|mOL2Dy8V}5xuN%fvx?_{Z-62WGUp+|kBrxz{sZhf`mNQS*0xyO1s_%0-ywq@_ zk)#FtlYY;Wb4?wfN;0;K)T{Y9`uoQL_0t zExN|h_=x{xX5=T*x5}N0jUi>e&rT=sS|4dKCjFsx(|TN*$dq;3e_?m1Pb)tey8ryM zX%F)&XPdHtd>2%H!_#~+g7Wdt1Vk!Kg z?p!G5se_PNNPEvW@kS^V^q#w^Mi0#2rym_49;ISA&KgCA&L_&_cX@$&C z(2G&!kg}=TziQmM2tY;6c*fgHw=KuEJo^yWDi+7 zr%#Ta2kg6S&o6?sqqf_nI>V+E)n!^X}SV$MXX_HFS_02Ld~k)b~0 z-)zsk+x`6Bzgw-KhrhIVz7oWtaA&=Ur9rCxdCLk?$&q_+kYy>6()3u<;}_7aqZ zk9G||nZQwhKWS5EWjuu*ODgFmO)SqzW}&O7=hM`nHJhAqgp=VkI591)Pao^e_-;fm z&isN*^Ux-LbCC3IoYvo3%N_z|7x}{k_xQRgol)>rso6a&&(oQq4*%pQZ1N?QnWpZb zfxY?f9O2e2QX8-9?EM!I^`TaZT{@*PB}e+`Uv^}{vJ*z=*$~M$J|B`3(hoUL@GR7- zgb-`yGpBV9~C||C;w5_b5!~iiAzh&FwF#lXYuq?D8A>ZRWVb z>j+ZKN4(@3rbpP~=To>HJ4KQ=;A~DsEPgI=&U(Tw9mjr!WmYV+^7!o1i*xX8Ll!MC zP|ppruQ!iT+4hlH)kmE6`hcj-)kCz0>Y-yB1V3;9Kq(L-d!08hS{=I5fe^MntL0cf z?=9`q*VD76&x$tL^SG2wk!hg(K8DDtv2>v}Ldqen26T~b6F!?iOnZNlMRRp_hTku$ zaIXlwYcd9YKD=s*pW`au4vLJYlD@-QNsSS`g|Xs2ikAgRQz6Tz5)b=Z+`3W~ zpbl*&#|X^$535+5gyU=J+=--#&k|biDf5z=;Ps7emBw-7OUbp1T zFCK23NUB3*^l{^s{Jt@C_d#(m&u|Dj3tt)Ch`hhv^XgopsS)jd+*k-PX`u}|m^YZtqJj4PFKOgUQ~RA*#+*Ac7yD)^FR6eJrjx_Vp;E=sCD!FF_rq z5|VRDc`au`;*ykU=BMBT{xb)LU~%np%~KJpJEDn)J=J5DH-=KIm$LS@hV1WuwM;YB z8*cCSuhP8%_X2I$e>-})-p}xEzxeq2@X;|f>X5eb7u#eRRI3E2gqa)209j1gW8Ul2 zEC7qp#ZccKIMs~HT+k^><6a!-K2Td7m5Owc^Y#obzF3K9 z(WIX@Te_TaXQBK@hvZ$LC&~X~?_z@t6`oft-VaZIN%b3Wi&~XvbaV(N>0pjIyd?V~-1gEYACTgpTya4q*n8WZNgGp}4E5V2`|O z160N@5Wx?9bjtg--d%0|QT{CzT;uKwHUjxx@m$o;6aTNQTj$rsn*+?w2Y^3k*Utl` z`pDMK$ua7Gbk`pf@_FFh|5P&G%zrsHvR#UoO=zlM(m(st$)jJ~r^R~corv96srPO- zf`URM6S0*eQGaZu&$|2KSTdFNr|JKjRjmJgK3CY2sp+_w4e6if`38G_!0EpZ4|ld4 zEI+ifSlu^VWMs2>_09>2n>o`q=P*>=5mZIRXvfH2W_thmO~|x|G4XQxwxf!k{WFay z9-e>Uq8d!8%e*H?Q6TxuvD);rI}=AFqZaYLT(ujnvx8&nv1XBil7Z&26-f%fegn-A zH*PC}urXi^sC{zIfLL;U?Tg2W;DIssJxHhL+jZdtO2Cf+9GR&pJR{N|n_5~@*3WHb z;Z9G81(@>;&&_0M)&d%=nqi2UqMTMg4VYy!lfG98r2%=sK37UC$=&M?5-NWj4#YT?P|t%_&!9(j39*>2awS z5n?J9T90~E6h&|Bi6tjkt?1<{o*X*FVuck0H#sg;E(wNNUE?3#tQnd(&GU9l?sGPR zsU|fOb-CVOWQ|K9Y?!(PhwhaD@63gdOswUdAKdev(z2ayT*i1`6PNP^BGfjir2rXp z{aHDOkhFHvA`pC%UC|#iM=CLWt;RRDQl&qoxA(Zfr-|MUG$!CuO< zGB8R!0YIcA5aX6`<=p1Ys&BDFUds}!cNv)Nl)~5Vmj;7GJ`yKipxON`sp*9b(#_l9 ze7v5!QJV{X0Ac;)76_@uxJuM;sl-!-65$CA%u07W91=Amg`a#{l#ZW4LOjY2q`8r^ z)jvl8oY=*|?x|zsD49wpR^V(f_EoXWEZCweq-GwTTG2E`6deMvC|M8JzMwP|)jdBa z29lcwW^@Cr`LA*Uch@t9pv)TDx_6+15+*F&zcQq$J`XzT=-oKL^1HENaBPx&N%v<$d)fu2RW5g&u<)Gj)Aw-Xazt;|oqs86-ZhsTdcK^tNMRl8EHONHIR0YlB+e zRg}XUfhHf>1vPEA()$)tdm!1K8ahI*4+lQ=j>stlTLUXXjA?C{^x066A0WG_w4swhA>r6Q@O{|Fb1L5 zi}#vol%t_cwkKR39cgKJ)b={K^R2v&{D6WJ3%;%HwR6xkm_6^5UG3!wQ7#|lt5FU^ z*^lyv5p%3YlUecA|Mp`eo9aE?zt$Hytr6$oC{YhF@kiPYT+Pjn5bDMv>G0bGh}I)n zN?UYd2vb1F7Iv=WiG691&TEkq7OwPB0toZN;bp4oilLlWqYmV^rg6yU)h7CnlrlfQ)_uZ~aZZLq+!Go+K7G zknT)%I%9Hk<4n)F;h*V+J{bt_G@SiCyM>?PH;j~Q?RSYF5wxqu<~=?XS};{dVPkM; zxZYI!DY`DQy^n5Zj)3>pHhuCodg>*iH}_sxt(?A$#yUTgoE#5RvVey6DsQ;cq@`l_ zWVbM**M_2i0vihX^gj$5$ixi(h_{j3BJg3&W?lX|evM^dh*&3hfHi*=Ntybr92N#) z@Y&qPJ|hDo>3v1kQQ;z-;5}Z|#$w@OZkb`MZh!eX;mBJ&Ne@<_Z zA~^-MG(aS=nz-p;uLew}u&Q4zeZ^|21sK?r7(ga>EP~ah-@$8rW<$V)b32oOT6gxE zbr9O7{xUmYyCr2~qQxHAQw=-nG^$wqsJDzgC)X#7AV%(rehR)@Sr8OdZWi4#Fa0sElp%q9)WvCZpsTZ< zpup%`YjNkPyI=gLHk$;~P=;S$Siged7k+{Y2~Q$nNoiBX8>`Ke8b6_ug>Q?Oh8-+5 zi;ds~fif|puXSzTWB?u{_wB~LBhZJ@o>`;uo~orNJD{ENhNtK+1VRTZ-aomihqrtIWM=_iI+?xI>Xh_l`CTA`(>@ z9G_QX*l9j-FIDa)EMaxh4(Xgp2-; zkL~nrZ&Gc&i#!;4SE?L4BxACYB#7IDXTl-`C?5(XHxFt%K6AQctCQD*(EMn-dL5md zG_Nf)woxMz!GWcxjx=XSWhmKdS5Lg|lIZU~^%|MD*}v=37_2AFe$OdjNQHEVPP(y~ z700MxEg@^9@su0sWUpfLyx!z3wpSvTnj_aKce+e9@h-b!_i??u#S>lI)4anB zn@x8Y-xrS+>sMdg5=c7}PdWbr*|gLu53+Sc6ZgRWaA@110Xj31+-#=Z>{}C({-NxI zWyypW(3|zJ!4PMsYC!T=e#3LW0@PmVB7HbIvnQD@`}uBTTPqB0i~bThC7mVik%e&b z#1i*hp#g1DIjqpgK6JE7@kAaQ@@SGzP=ImXpVPKblmYRMXq%eOhG59!5oD*g0PNzU zN9!aib-%Cg0K-sFy!*xxzt{lBwo(Tn`#&vLy_u?oZDJ<9;vGcR8Hzo^yk>y^X?z(^ zETROt1epaXyH)f1D!G}pttie)zi13q5om+W5bzf9@aRwPEtD$_y-ovJW7udJiJ8LUk2#Zd$rdbZ?DbEB zuTKfMSj^a2#NGOX6H9LZt?z>u@ol~6i&>tJ06?tSieHA-Yr@MvTi?QCG&x1UlSW=zQ4T#-@~f!!@0p z$35c`QQ~Hp_XeiS=JDi+!k%$*y7r$_Bj@|*pbYRH4}5?2q?6}nsV4HpNTK2c{HsKv zeg}PFCu7&aOUE_8?5H~I6$I0|e-|zaxeh_r#@hH$Ale#sl09Ie(8$Xfno=vy^Y9k{q z-8WcQ3h$D$-K;pMJHeUEik0Ac!;ht-fOg*Sj?XI}ymWB#v<=%w zorcP+Qq4e|A_g!0E<&HYRDcZ+XekWkz2+ooQeLMLxf~8{batW|+$tWV(26aJhixXa zcaDttroPZlI9p?lsCOq5FVtK2WcyO1aL^**W`em~0VuL5Y}o;O9(sPozDXlbJn5ze z;dR=&GG`t_EbCq<+;(^Uq?v>?0-xG$u zr-Mk*WuABd$wB*GAN6S-#SmYx=}U(z@{$TPU1A+zTW?(3Z3*60WO)W>1Myqkn()Q_>+~bZ_uf+=r8vmkk^ZD@# zQ(Uam+J10B;oaYIMCvk{(&{|-$aPA-<#th;Ge)GbrWPWZWWpp)SUybB<)`VFa6i99 zfbboMuAEu#QR^o7^O+pAYkBrn=c8Bms|UI;Uuk(3{Z1&`Yfyz5?li4nK{Z;k)aDj^ zSDa12g{H42iYLLMM+~E0e*cB^$$~s}E>BX&g>y1A-VL+Sr!q9QTIKZmmSfw~ZW}gb z4I-rkShhG=auok{VMMJp4W6vyz6jKb41w}0>IM1&PL7;O`%zGlwO>W` zJWem8zubc!AjhmsE*wr+KIeCNdLOu*kCdrnrP~EnoUeF?)d@>7YiZOHKLav#Y3=|o zPN_i$dEi@9scl=hVka*ZWX&b^dr?#!^CxW-Q&P7m4?xXOHt@&r4@9BNNp^y{NE4Y$ z+Bp9+F1 zqqvW=!WKgr8^U_mB#wvL1T;Sc_FzQ56c>`e3aX+7@}Y{*wdLcou6Oa( z(iPYoju90xaj`(zAhihOM28V|6+Yp}Pu0TDniLtvX-934 zb-VmHeB$r!uuH1ygzcTe^bC2TCeSs%7nvV(YW5PA#=vozk6?Na>MsGFAM}$_gR*i+zDD4H^VWk3U62?(!-x@v#Puvqg6KEV5|upZg!67L)`b4tK_ zZoLdul+jcBns6<%mD*@(>}UhR63iPK4ME{&ksi--m$!O?_heT$;jKy&FY2>v3+sV8 z=IELym4xBc=kvBL%G2{{ytzwb7)PJrF9Rt(5=qQG_RQy!L%R$dd~B0pkOFMqjD=L z(`+>D#&+eCoG~)HH(+HakY>S zZU(o*@vkbbH>;xQYoWHs01_(t-j19D%r$3)6!fb!@S6eEM-wFhnz^+X5K1)}oYuv% zMoA2D`_CXhV%)jkGz9bJ@&qpBJw{{ji?9+?EV?68=!Y}e3{vs=!_8|LeWp0s#2j6l zJ}+xm6wu|BM6aS>BE9aE1fSDG-<>eT5d3eS9G|Z_fvkL2mmmD96|Y}aqmGE%PXsVO8-Pz=!V`MR^M100W}s!J%*|q zApxLhNw^D^o5$eQSqambQd zF!^?5^I{mt&Rw&@-!@`8VqD(A<*!{`zJEIOY29-ooUu~xqPvos@_Tt{-qs_sXO6-; ze@=7vK|9d1sm=YXLJt?~9KNX;#x`QsdOcJ(ZVa}I{nUKg3hQ+YCe9xC2)DMVZ>KuW zZPo9my=}H$&4knq$YBLZ2_wOayqvAje482!TZv7oRRDS+ZwsF)??A>I{*E@(tv}x# zA@lJ;#~}C@C+dl@m!d?oG*Nz70PM*vM#=T43(h^+=R=}1s)Qaz{-3s)4Kt7tjT+guEiZLgBbYd9W3qhx%`1y0;Tynr-2FixtKl^6T6#`sS~^-b1})ZOhP|o{gC^ zC6Sd;THrH#j?AYl*B76=#uSfC^|^;%?Z-c`;JW<_k&4WurpRa-H5zQ_RfP!ki^0z@T_*n z^~Yi5b2+zPEL042*a5y_DB$D`os^v?%Wh+kv$EL>Qu38vC8!Tx7>h}F!(TAeMYaAx zAZhfyAdseVl$r3hr0jWvE|B(xKFz|6r!&MF_0yAeSt z?^5KG-}k5wCZXL~hINrU$Do(XipDR&B+fM)%pL>O3FX_LKC_IXmx-#w=RMhR`h0kE zL;Q#&OMv><#g_4l>sCP0QQWK-dHa*%F3Nj-RV(8$ew?@JC@NEdd+swZw3rDSZn(%O z>8cIxI6Wt4(YVv|ug3Neo7()qke%!TLB5g4U`jmrq-LmJ(tiAVNXf)c$U_B{R_*nu z)@84}x}GXz%yZ7@qg&AZH=v6S>~J7!M9O4gx|z>9+dAt*Sc$!y(oDhk%l1W=OWv4} z9pjW7d~v${+CijLi`nA9@m1bvw=K0ZZxPV7_jTAhbpT$gK2Ib-Lp-pB{%RVEv>) z-)hJ?3R`zas9dW(WldaX*i^Q6)Pe|yyx6q`sYbo#O78IaLfHuvnT*w+F;$HSf zlZk|t>Q&C_)M2`QKo)-rTFElX&PgZ=@Fk=b&HV%l7L9|0yMpMZhP1lKa2$%h3aGq_ zyvMf%sjq~$x;_(6d$InqL~IOnHSn@+L&~SZ&3Fr|vF|3nzlTW)gsa+i zS)m1N6K-x4`&K*t9?B=m_Uzl^3X@0Ix0=Ml@DURB47jhFZxFNet6q5}RN6ECgwA0{ zBr?9~W8!=)y(_&nMae*=W-ePXMeNI5bxEuxuRKHt8sMLN?KH;OA>4%d&@kyoE zT)N0&)8;ZB=C`v6XcBAofGfLC&`E(Ksbup-$~#Qw*g$!ODfJSvSM2j#ch(6O^I@*8 zU$vAi?tXE{aL~U$p(!n}p&y2iHkw;Azlr1IpZE;*VzcMx5VRc?9T@TJTx&|c_%Icp zlD)tA5w0r6`Z4DeJ(i^aC10i+`>)ub@wm&Z#h3+z$}eM`xbUNp2=nqps3NN`!3)8 z#N+VMCQl40JpP}bDwqAP7DWqN{0)M|&eyk3&)~B?uTd;RmBdSl!#C;oEqx;Gxv~3d z9p!Vs#TE9XDgg|GtWOTWRHE!>D|8C~gO9kk^uDdmK)5yit+-gSpew~`{(CMlCc)J( zs1fx6l@;W8ZQ{t@7TQVU7B@x?f&Fay?AL#81vUPkXb}P*v%NK)%9GCHt&C%?ySG*8 z*#ARW*+aF#{sXPub28w65xM#QKmq=rkE=ixNmc%khXOr0J@c)|H*c8#QFrZ5+`j>o CToZ=? literal 0 HcmV?d00001 diff --git a/docs/source/index.md b/docs/source/index.md index 9912c633..10669c43 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -38,6 +38,13 @@ tutorials/installation tutorials/fuzzing_linux_kernel ``` +```{toctree} +:maxdepth: 2 +:caption: How-to guides + +how_to/github_actions +``` + ```{toctree} :maxdepth: 2 :caption: Reference From 696baeaaa6ad60db59202153cc57c12267c955cc Mon Sep 17 00:00:00 2001 From: Mathieu Tarral Date: Thu, 11 May 2023 19:28:26 +0200 Subject: [PATCH 2/2] docs: mention kafl.action in the components --- docs/source/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/index.md b/docs/source/index.md index 10669c43..b8457e9a 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -26,6 +26,7 @@ The project is structured around multiple components: - [`IntelLabs/kafl.qemu`](https://github.com/IntelLabs/kafl.qemu): Modified QEMU with fast-snapshots support - [`IntelLabs/kafl.libxdc`](https://github.com/IntelLabs/kafl.libxdc): Fast Intel PT decoding library - [`IntelLabs/kafl.targets`](https://github.com/IntelLabs/kafl.targets): Example kAFL targets +- [`IntelLabs/kafl.actions`](https://github.com/IntelLabs/kafl.actions): Github Action for CI/CD integration ## Contents