서버 보안 체험: 불법 로그인 방지
저자:Eve Cole
업데이트 시간:2009-07-24 15:42:20
1. 프로그램에서 데이터베이스에 연결하는 데 사용하는 계정/비밀번호/권한과 같은 데이터베이스의 보안을 구성합니다. 뉴스를 탐색하는 경우 읽기 전용 권한을 사용하고 다른 모듈에 대해 다른 계정/권한을 사용할 수 있습니다. 또한, 어떤 데이터베이스의 저장 프로시저를 호출할 수 있는지도 엄격하게 구성해야 하며, 사용하지 않는 모든 프로시저를 비활성화(특히 cmd)하여 주입 후 시스템 호출을 위해 데이터베이스의 저장 프로시저를 사용하는 것을 방지합니다.
2. 고객이 제출한 매개변수를 얻을 때 매개변수 길이, 매개변수 유형 등을 포함하여 엄격한 필터링을 수행합니다.
3. 관리자의 배경을 엄격하게 보호하십시오. 가능하면 특정 IP 액세스만 허용하도록 설정해야 합니다(예: 관리자의 네트워크 세그먼트에만 액세스 허용). 이는 실제 상황에 따라 다릅니다.
4. 주입 후 시스템 기능이 호출되지 않도록 운영체제를 안전하게 구성한다.
cmd.exe/tftp.exe/ftp.exe/net.exe
이 모든 파일은 다른 디렉터리로 전송되며 해당 디렉터리에는 엄격한 권한이 할당됩니다.
5. 네트워크 액세스 제어를 설정합니다.
6. 가능하다면 HTTP에 대한 콘텐츠 필터링을 구성하여 바이러스, 악성 스크립트 등을 필터링합니다.
7. 필요한 경우 다수의 인젝션 툴 스캔을 방지할 수 있는 HTTPS 선택을 고려해 볼 수 있습니다. 제가 직접 인젝션 탐지 툴을 개발할 때 HTTPS 지원을 고려했지만 아직 구현되지 않았습니다.
또한 일반적으로 프로그램에서는 권한 및 매개 변수 필터링과 같은 문제를 주로 고려하며, 권한에는 주로 IIS 검색 권한 및 데이터베이스 호출 권한이 포함된다는 사실도 알고 계실 것입니다. 또한 데이터베이스와 운영 체제의 보안 구성도 고려해야 합니다. 또한 개발 과정에서 이미지 업로드 등 다른 사람이 개발한 구성 요소를 사용할 것인지 궁금합니다. 아니면 개발 과정에서 대부분의 사람들이 보안 문제를 사용하게 될 것입니다. 사용자 로그인 인증 등 인터넷이나 서적에 제공되는 코드에 대해서도 연구해야 합니다.