An Investigative Study on Secure Coding Practices with Shell Scripting

[{“box”:0,”content”:”[if 992 equals=”Open Access”]n

n

n

n

Open Access

nn

n

n[/if 992]n

n

Year : May 16, 2024 at 12:18 pm | [if 1553 equals=””] Volume :11 [else] Volume :11[/if 1553] | [if 424 equals=”Regular Issue”]Issue[/if 424][if 424 equals=”Special Issue”]Special Issue[/if 424] [if 424 equals=”Conference”][/if 424] : 01 | Page : –

n

n

n

n

n

n

By

n

[foreach 286]n

n

n

Yamuna Mundru, Manas Kumar Yogi

n

    n t

  • n

n

n[/foreach]

n

n[if 2099 not_equal=”Yes”]n

    [foreach 286] [if 1175 not_equal=””]n t

  1. Assistant Professor, Assistant Professor Computer Science and Engineering-AI & ML Department, Pragati Engineering College (Autonomous), Surampalem, Computer Science and Engineering-AI & ML Department, Pragati Engineering College (Autonomous), Surampalem Andhra Pradesh, Andhra Pradesh India, India
  2. n[/if 1175][/foreach]

n[/if 2099][if 2099 equals=”Yes”][/if 2099]n

n

Abstract

nThis investigative research delves into secure coding practices within shell scripting, aiming to reduce prevalent security vulnerabilities and improve the overall security stance of shell scripts. It emphasizes three key areas: static analysis, dynamic analysis, and manual code review. Through static analysis, the code structure, usage of unsafe functions, and potential vulnerabilities are examined without executing the script. Dynamic analysis entails running the script in controlled settings to detect runtime vulnerabilities and behaviors. Manual code review entails an in-depth inspection of code logic, input validation, and error handling. The study compares its findings with established secure coding guidelines, including input validation, proper quoting, error handling, and the principle of least privilege. The effectiveness of recommended best practices and mitigation strategies is assessed through practical implementation and testing. By following these methodologies, developers can identify and address security vulnerabilities in shell scripts, ensuring the integrity, confidentiality, and availability of systems and data.

n

n

n

Keywords: Shell scripts, secure, coding, weakness, incidents, attack

n[if 424 equals=”Regular Issue”][This article belongs to Journal of Advances in Shell Programming(joasp)]

n

[/if 424][if 424 equals=”Special Issue”][This article belongs to Special Issue under section in Journal of Advances in Shell Programming(joasp)][/if 424][if 424 equals=”Conference”]This article belongs to Conference [/if 424]

n

n

n

How to cite this article: Yamuna Mundru, Manas Kumar Yogi. An Investigative Study on Secure Coding Practices with Shell Scripting. Journal of Advances in Shell Programming. May 16, 2024; 11(01):-.

n

How to cite this URL: Yamuna Mundru, Manas Kumar Yogi. An Investigative Study on Secure Coding Practices with Shell Scripting. Journal of Advances in Shell Programming. May 16, 2024; 11(01):-. Available from: https://journals.stmjournals.com/joasp/article=May 16, 2024/view=0

nn


nn[if 992 equals=”Open Access”] Full Text PDF Download[/if 992] n[if 992 not_equal=”Open Access”]

[/if 992]nnnn[if 379 not_equal=””]n

Browse Figures

n

n

[foreach 379]n

n[/foreach]n

nn

n

n[/if 379]n

n

References

n[if 1104 equals=””]n

  1. Dai T, Karve A, Koper G, Zeng S. Automatically detecting risky scripts in infrastructure code. InProceedings of the 11th ACM Symposium on Cloud Computing 2020 Oct 12 (pp. 358–371).
  2. Graff M, Van Wyk KR. Secure coding: principles and practices. ” O’Reilly Media, Inc.”; 2003.
  3. Seacord RC. The CERT C secure coding standard. Pearson Education; 2008 Oct 14.
  4. Payne BR, Walker AR. Motivating secure coding practices in a freshman-level programming course. InInfoSecCD 2014 Oct 11 (pp. 1–1).
  5. Payne BR, Walker AR. Motivating secure coding practices in a freshman-level programming course. InInfoSecCD 2014 Oct 11 (pp. 1–1).
  6. Rahman A, Rahman MR, Parnin C, Williams L. Security smells in ansible and chef scripts: A replication study. ACM Transactions on Software Engineering and Methodology (TOSEM). 2021 Jan 20;30(1):1–31.
  7. Wheeler DA. Secure programming for Linux and Unix HOWTO. 1999.
  8. Bosman E, Bos H. Framing signals-a return to portable shellcode. In2014 IEEE Symposium on Security and Privacy 2014 May 18 (pp. 243–258). IEEE.
  9. Ferrer F, More A. Towards Secure Scripting Development. InIII Workshop de Seguridad Informática (WSegI 2011)(XL JAIIO, Córdoba, 29 de agosto al 2 de septiembre de 2011) 2011.
  10. Rights RF. Secure Coding. Practical steps to defend your web apps. 2007.
  11. Ferrer F, More A. Towards Secure Scripting Development. InIII Workshop de Seguridad Informática (WSegI 2011)(XL JAIIO, Córdoba, 29 de agosto al 2 de septiembre de 2011) 2011.
  12. Aderhold M, Cuéllar J, Mantel H, Sudbrock H. Exemplary formalization of secure coding guidelines. TU Darmstadt and Siemens AG, Tech. Rep. 2010 Mar;3.
  13. Ankolekar VL. Application Development Technology and Tools: Vulnerabilities and threat management with secure programming practices, a defense in-depth approach. Option. 2003 Nov 10;1:10.
  14. Hortlund A. Security smells in open-source infrastructure as code scripts: A replication study. 2021.

nn[/if 1104][if 1104 not_equal=””]n

    [foreach 1102]n t

  1. [if 1106 equals=””], [/if 1106][if 1106 not_equal=””],[/if 1106]
  2. n[/foreach]

n[/if 1104]

nn


nn[if 1114 equals=”Yes”]n

n[/if 1114]

n

n

[if 424 not_equal=””]Regular Issue[else]Published[/if 424] Subscription Review Article

n

n

n

n

n

Journal of Advances in Shell Programming

n

[if 344 not_equal=””]ISSN: 2395-6690[/if 344]

n

n

n

n

n

[if 2146 equals=”Yes”][/if 2146][if 2146 not_equal=”Yes”][/if 2146]n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n

n[if 1748 not_equal=””]

[else]

[/if 1748]n

n

n

Volume 11
[if 424 equals=”Regular Issue”]Issue[/if 424][if 424 equals=”Special Issue”]Special Issue[/if 424] [if 424 equals=”Conference”][/if 424] 01
Received April 24, 2024
Accepted May 7, 2024
Published May 16, 2024

n

n

n

n

n

n function myFunction2() {n var x = document.getElementById(“browsefigure”);n if (x.style.display === “block”) {n x.style.display = “none”;n }n else { x.style.display = “Block”; }n }n document.querySelector(“.prevBtn”).addEventListener(“click”, () => {n changeSlides(-1);n });n document.querySelector(“.nextBtn”).addEventListener(“click”, () => {n changeSlides(1);n });n var slideIndex = 1;n showSlides(slideIndex);n function changeSlides(n) {n showSlides((slideIndex += n));n }n function currentSlide(n) {n showSlides((slideIndex = n));n }n function showSlides(n) {n var i;n var slides = document.getElementsByClassName(“Slide”);n var dots = document.getElementsByClassName(“Navdot”);n if (n > slides.length) { slideIndex = 1; }n if (n (item.style.display = “none”));n Array.from(dots).forEach(n item => (item.className = item.className.replace(” selected”, “”))n );n slides[slideIndex – 1].style.display = “block”;n dots[slideIndex – 1].className += ” selected”;n }n”}]