소개
이 실습에서는 두 가지 기본적인 보안 개념인 입력 유효성 검사 (input validation) 와 코드 무결성 (code integrity) 을 탐구합니다. 입력 유효성 검사는 프로그램이 처리하기 전에 프로그램이 받는 모든 입력이 안전하고 올바르게 형식화되었는지 확인하는 관행입니다. 이는 명령 주입 (command injection) 을 포함한 광범위한 공격에 대한 중요한 방어 수단입니다. 코드 무결성은 애플리케이션 코드가 승인되지 않은 당사자에 의해 변경되거나 손상되지 않았는지 확인하는 것을 포함합니다.
실습을 통해 이러한 개념을 배우게 됩니다. 먼저, 의도적으로 명령 주입에 취약한 간단한 쉘 스크립트 (shell script) 를 생성합니다. 다음으로, 이 취약점을 악용하여 위험을 이해합니다. 그런 다음, 적절한 입력 정제 (input sanitization) 를 구현하여 스크립트를 안전하게 만듭니다. 마지막으로, 스크립트의 무결성을 확인하기 위해 암호화 해시 (cryptographic hashes) 를 사용하는 방법을 배워 스크립트가 변조되지 않았는지 확인합니다.



