<div dir="ltr"><div>On 03/12 02:29, Eugene Syromiatnikov wrote:</div><div>> On Mon, Mar 12, 2018 at 10:38:37AM +0800, Chen Jingpiao wrote:</div><div>> > Hi.</div><div>> > </div><div>> > I want to apply GSoC again. I am interested in seccomp-assisted syscall</div><div>> > filtering project.</div><div>> > </div><div>> > I introduce myself again.</div><div>> > </div><div>> > My name is Chen Jingpiao, a junior student in Guangdong Pharmaceutical</div><div>> > University, majoring in Computer Science and Technology. I am familiar with C,</div><div>> > Linux and tools (Git, vim, gdb, find, grep, diff, makefile etc.)</div><div>> > I have accepted strace GSoC 2017 netlink socket parsers project.</div><div>> > </div><div>> > I will prepare the work according to the following step:</div><div>> > </div><div>> > 1. Understand how strace trace a program (or attach a process)</div><div>> > 2. How seccomp work</div><div>> > 3. How to handle special case:</div><div>> > <span style="white-space:pre">    </span>* architecture</div><div>> > <span style="white-space:pre">      </span>* personality</div><div>> > <span style="white-space:pre">       </span>* -f option</div><div>> > <span style="white-space:pre"> </span>* subcall</div><div>> > 4. How introduce seccomp filter in strace</div><div>> > </div><div>> > I'm happy to hear your suggestions or get your help.</div><div>> > Thank you.</div><div>> </div><div>> Please note that there is already some (seemingly abandoned) patch</div><div>> available that tries to introduce the functionality in question[1],</div><div>> as mentioned on strace's GSoC wiki page[2] (do you plan to use it in</div><div>> your work or will do everything from scratch?).</div><div><br></div><div>Thank you.</div><div>I want to work from scratch.</div><div><br></div><div>> I'm looking forward</div><div>> to a more elaborate description of the proposal (for example, what are</div><div>> expected limitations of seccomp filter (like its size) and what</div><div>> functionality can be achieved there, how it integrates with other</div><div>> features like path filtering and the upcoming filtering engine, what</div><div>> are possibilities regarding optimizing BPF code for size). In addition,</div><div>> I have a concern regarding conflicts with already set seccomp filters</div><div>> or attempts to do so, what solutions could you propose in that regard?</div><div><br></div><div>In my understanding, this project is work with -e trace option to make strace</div><div>run faster. Not introduce user command, it easy to integrate with other features.</div><div><br></div><div>I write a demo [1], and my proposal draft [2].</div><div><br></div><div>Detail about the demo:</div><div><br></div><div>* only trace execve and open syscall</div><div>* trace execve for handle PTRACE_EVENT_EXEC event</div><div>* can handle multiple personality</div><div><br></div><div>Thank you.</div><div><br></div><div>> </div><div>> [1] <a href="https://github.com/shinh/strace/commit/92db747699773b8b9be42ecb27ab969eeb649825">https://github.com/shinh/strace/commit/92db747699773b8b9be42ecb27ab969eeb649825</a></div><div>> [2] <a href="https://strace.io/wiki/GoogleSummerOfCode2018#seccomp-assisted_syscall_filtering">https://strace.io/wiki/GoogleSummerOfCode2018#seccomp-assisted_syscall_filtering</a></div><div><br></div><div>[1] <a href="https://github.com/ppiao/strace/commits/ppiao/seccomp">https://github.com/ppiao/strace/commits/ppiao/seccomp</a></div><div>[2] <a href="https://gist.github.com/ppiao/4881da820b35c96075fa8d76bee073f3">https://gist.github.com/ppiao/4881da820b35c96075fa8d76bee073f3</a></div><div><br></div><div>--</div><div>Chen Jingpiao</div></div>