-
Notifications
You must be signed in to change notification settings - Fork 426
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Executable Tutorial Proposal - DevSecOps #2453
Conversation
Sounds good, looking forward to the tutorial. |
Thanks @Deee92 , I've resolved the conflict now! |
We need to provide feedback on this assignment, but I couldn't find the link. Could you please share it with me? |
@Deee92 Due to scheduling conflicts we decided to push back our work on this assignment. It was mentioned during the first lecture that the deadlines were mostly suggestions, but we realize now that they are relevant for the peers giving feedback. I've updated the proposal comment to list "Task 3" instead. Pinging reviewers @arejula27 @Uqqasha @Alexanderliu2002 so that you are aware of this as well. Thanks! |
Hi, how is going? maybe you can provide us early access so we can give feedback before the final submission |
# Assignment Proposal ## Title Feedback for executable tutorial "Security Linting in Python using Bandit". ## Names and KTH ID - Student Tomi Toma (ttoma@kth.se) - Student Sina Khoraman (sinakh@kth.se) ## Deadline Task 3 ## Category Feedback ## Description Feedback on KTH#2453
@einbergisak the README file in the repo says "deadline 1", is that correct? in any case please provide the link to the tutorial and ping me. thanks! |
Hi reviewers @arejula27 @Uqqasha @Alexanderliu2002 @ttoma00 ! You can view our tutorial here: Thanks! :) |
Hi @monperrus ! We had initially decided on task deadline 1, but after trying to schedule some time a few weeks ago to work on it, we decided to instead focus on deadline for task 3. When arejula27 commented, we realized that we had people who wanted to give feedback and thus updated the comment for this PR to list task 3 instead. We made sure to notify (ping) both the assigned TA @Deee92 and the reviewers so that they were aware of this. You can see this comment earlier in this PR thread. Our submission is now done, and you can view our tutorial here: And I've created a submission PR here: Thank you! :) |
# Assignment Proposal ## Title Feedback for executable tutorial "Security Linting in Python using Bandit". ## Names and KTH ID - Student Tomi Toma (ttoma@kth.se) - Student Sina Khoraman (sinakh@kth.se) ## Deadline Task 3 ## Category Feedback ## Description Feedback on #2453
Feedbackby @laullaurado and @arejula27
To begin with, this is a well-constructed tutorial. The introduction clearly explains what we are going to learn in the tutorial, as well as its structure. We believe that the tutorial was well-structured overall, allowing the reader to follow the sections smoothly and acquire knowledge incrementally. As a result, we did not encounter any gaps in knowledge between different sections. The first section, explains the importance of Bandit and why it is worth our attention, highlighting its relevance within DevOps. We also appreciate the diagram and the explanation of how it works behind the scenes. In general, the content is well summarized, it doesn’t repeat concepts and all explanations are relevant. We found it particularly convenient that all explanations included at least one command to execute in the terminal. This interactivity helped us understand Bandit in a practical way. It also includes different use cases and an overview of the available configurations, giving a general idea about the scope of the tool. As to high-level things that need some work: It is mentioned in the introduction that Bandit can be integrated into the CI/CD pipeline, but it doesn’t explain how or in what step/stage it should be implemented. Despite the tutorial explaining why we should use Bandit and including a command with each explanation, we did not feel that we learned how to use it. After completing the tutorial, we feel that Bandit is a valuable tool to add to our projects; however, it did not give us the confidence to say that we already know how to use it. We would appreciate more interactive elements, such as the ability to write a configuration file. The tutorial took 8 minutes to complete. Introduction
Background and Relevance
Installation and Configuration
Basic Usage: No Vulnerabilities
Secrets and Severity
False Positives
Directory Scanning and Output Formatting
Outro
|
@arejula27 @laullaurado Thank you for your feedback! Regarding a hint for the easter egg - the big raccoon has the raccoon video! 😉 |
by @Alexanderliu2002 and @leegrash Disclaimer: We certify that generative AI, incl. ChatGPT, has not been used to write this feedback. Using generative AI without permission is considered academic misconduct. Thanks for the easy-to-read and digest tutorial. Here is our feedback to you! GeneralWe find that the tutorial Executable Tutorial Proposal - DevSecOps is overall very nice. There are certainly strengths and weaknesses on some parts however the goals are clearly stated and we believe that it achieves these.
We do however feel that there are some overall concrete ways to improve it.
For a more structured breakdown of our thoughts on each step, see below: IntroductionThe introduction is very clear and gives a good overview of the subject. We liked the structure of this first intro as it both explains what Bandit is and why the reader should be interested in continuing the tutorial. The only point to make on this slide is that the Python abstract syntax tree would have benefited with a bit more explanation (it is a bit technical compared to the rest of the tutorial), maybe a picture of the code that produces this tree would be very helpful! Installation and ConfigurationNot much to say here, the text flows nicely and the structure is intuitive. Basic Usage: No VulnerabilitiesThe simply structure does make it very easy to read and digest, but it depends on which target audience you are looking to present to. For example, for beginners to coding, this is great, but for more experienced programmers the example containing just a simple print() may be too simple. A relatable or real-world example would be much appreciated! Secrets and SeverityAutomatic prevention of security leaks. Now we’re talking! (Coming from a guy who accidentally pushed his secret key to a public repo like an idiot..) False PositivesSame thing applies here, it seems like a very user-friendly and useful program and you give a clear description of how to use it —but the code examples could be just a little bit more flashy or realistic :). PS: If the tutorial is made to run through quickly, we would suggest automating the adding of the “#nosec” comment with a function like “sed”. (or providing the code/instruction for opening vim) Directory Scanning and Output FormattingNice and clear explanation of a very useful tool! OutroWe liked the friendly tone of the tutorial, thanks for teaching us! |
Feedback
GeneralFirst of all, let us just say, the overall tutorial experience is engaging, well-structured, and informative. Here are some of the things we especially appreciated:
Now, here are some areas where we think the tutorial could benefit from a little tweak:
IntroductionThe intro does a great job of setting the stage for the tutorial. However, we suggest adding a small section about how Bandit fits into DevOps pipelines, with a brief mention of other tools it could work alongside. Installation and ConfigurationThe installation section is very simple. Providing high-level overview of 3 methods of how to configure Bandit along with the installation is interesting. The inclusion of .bandit configuration file example is very helpful, since it is mentioned that this configuration option will not be part of tutorial. Basic UsageThe basic usage section is clear. The only improvement we would suggest is to combine the commands for creating and populating code.py. Also, after running Bandit, a brief description of what the Bandit output looks like (e.g., what CWE means, what the line numbers represent). Secrets and SeverityIn this section, we really liked the rhetorical question, “But why would one want to skip possible issues?” as it keeps the reader engaged. However, just like in the earlier sections, a bit more detail about the output would be useful. False PositivesThis section is definitely one of the highlights, and I loved that you introduced the # nosec tag, which is such a cool feature of Bandit. However, it would be helpful to clearly explain why this particular SQL query in bad_sql.py is a false positive. You mention “the variable is hard coded”, but it would be beneficial to explain which variable and on which line in the code. Directory ScanningThe recursive scan feature is well demonstrated, but it would be useful to state how many files are in the directory before running the scan. That way, learners have an idea of what to expect when the scan runs. OutroThe wrap-up is solid and you briefly summarize what has been covered. |
Hi @Alexanderliu2002 and @leegrash, could you update your feedback to add the mandatory statement about not having used generative AI? :) |
Hi @Deee92 , I completely missed to include it, it is added to the comment now, sorry!! |
Assignment Proposal
Title
Security Linting in Python using Bandit
Names and KTH ID
Deadline
Category
Description
We will demonstrate how to conduct security linting analysis using Bandit for Python, focusing on identifying common security vulnerabilities. The tutorial will be presented through Killerkoda and will cover installation, basic project setup, and usage examples.
Relevance
Security linting is highly relevant for DevSecOps and DevOps because it integrates essential security practices into the development lifecycle. Using Bandit for security linting allows teams to identify/address vulnerabilities early - aligning with the DevSecOps goal of embedding security throughout the development process.