Local File Inclusion (LFI)는 공격자가 웹 브라우저를 통해 서버에 파일을 포함할 수 있게 하는 사이버 공격의 한 유형입니다. 이 취약점은 파일 경로 매개변수 형태의 사용자 입력을 올바르게 검증하지 않는 웹 애플리케이션에서 발생합니다. 공격자는 이 취약점을 이용해 접근하거나 실행하고자 하는 파일의 경로를 주입하여 서버의 파일 시스템에 대한 무단 접근 및 민감한 시스템 파일, 구성 파일을 보거나 악성 스크립트를 실행할 수 있는 가능성을 제공할 수 있습니다.
로컬 파일 포함 공격은 다음 단계를 포함합니다:
취약한 웹 애플리케이션 식별하기: 공격자는 먼저 파일 경로 매개변수의 입력 검증이 부족한 웹 애플리케이션을 검색합니다. 이러한 매개변수는 종종 파일을 가져와 표시하기 위해 애플리케이션에서 사용됩니다.
파일 경로 매개변수 주입하기: 취약한 웹 애플리케이션이 식별되면, 공격자는 포함하고자 하는 파일의 경로를 주입하기 위해 파일 경로 매개변수를 조작합니다. 일반적으로 매개변수에 악성 코드나 디렉토리 트래버설 시퀀스를 첨부하여 이를 수행합니다.
공격 실행하기: 조작된 파일 경로 매개변수가 서버로 전송되면, 서버는 주입된 값을 합법적인 경로로 간주하고 지정된 파일을 포함하거나 실행하려고 시도합니다. 성공할 경우, 서버는 악성 파일에 대한 접근을 제공하여 애플리케이션의 보안을 위협하고 잠재적으로 전체 서버를 위협할 수 있습니다.
웹 애플리케이션을 로컬 파일 포함 공격으로부터 보호하기 위해 다음의 예방 조치를 시행하는 것이 중요합니다:
입력 검증 및 보안 코딩: 파일 경로 매개변수를 포함한 사용자 입력이 철저한 검증 및 정화를 거치도록 보장합니다. 입력 검증은 예상되는 문자와 형식만 허용하도록 엄격한 규칙을 강제하여 악성 파일 경로의 주입을 효과적으로 방지해야 합니다.
파일 권한 및 접근 제어: 서버에서 권한을 철저히 설정하고 접근 제어를 구성하여 무단 파일의 가져오기를 제한합니다. 서버가 의도된 범위 외의 민감한 파일에 접근할 수 있는 능력을 제한함으로써, 성공적인 LFI 공격의 영향을 완화할 수 있습니다.
정기적인 업데이트 및 패치: 모든 웹 애플리케이션을 정기적으로 보안 패치 및 업데이트를 적용하여 최신 상태로 유지합니다. 벤더는 종종 LFI와 관련된 알려진 취약점을 해결하기 위한 패치를 릴리스합니다. 애플리케이션을 즉시 업데이트함으로써, 취약점 악용의 위험을 상당히 줄일 수 있습니다.
웹 애플리케이션 방화벽 (WAF): Local File Inclusion 공격에 대비해 추가적인 방어층을 제공하기 위해 웹 애플리케이션 방화벽 (WAF)을 배포합니다. WAF는 LFI 시도를 포함하여 다양한 종류의 웹 애플리케이션 공격을 탐지하고 차단하도록 설계되어 있습니다. 이들은 시그니처 기반 탐지 및 행동 분석과 같은 다양한 기술을 사용하여 애플리케이션 계층에서 악의적인 활동을 식별하고 방지합니다.
Remote File Inclusion (RFI): Remote File Inclusion은 LFI와 유사한 공격 유형입니다. 이는 서버에 원격 파일을 포함하기 위해 웹 취약점을 악용하는 것을 포함합니다. LFI가 로컬 파일을 사용하는 반면, RFI는 원격 서버에 호스팅된 파일을 포함할 수 있습니다.
Web Application Firewall (WAF): 웹 애플리케이션 방화벽 (WAF)은 LFI 및 RFI를 포함하여 다양한 유형의 공격으로부터 웹 애플리케이션을 보호하도록 설계된 보안 시스템입니다. 이는 애플리케이션과 외부 트래픽 간의 필터 역할을 하며, 애플리케이션의 보안을 보장하기 위해 잠재적으로 악의적인 요청을 분석하고 차단합니다.