当前位置 - 무료 법률 상담 플랫폼 - 법률 지식 - 서버가 공격을 받으면 어떻게 해야 하나요?

서버가 공격을 받으면 어떻게 해야 하나요?

보안은 항상 상대적이며 가장 안전한 서버라도 공격을 받을 수 있습니다. 보안 운영 및 유지 관리 담당자로서 파악해야 할 원칙은 시스템 보안을 보호하고 알려진 모든 위험한 동작을 복구하기 위해 최선을 다하는 것입니다. 동시에 시스템이 공격을 받은 후에는 공격 행동을 신속하고 효과적으로 처리할 수 있습니다. 공격이 시스템에 미치는 영향을 최소화합니다.

1. 서버 공격에 대한 일반적인 아이디어

시스템이 공격을 받는 것은 끔찍한 일이 아닙니다. 무서운 것은 공격에 직면하여 무력해지는 것입니다. 서버가 공격받은 후의 일반적인 단계에 대한 자세한 소개입니다.

1. 네트워크 차단

모든 공격은 네트워크에서 오기 때문에 시스템이 해커의 공격을 받고 있다는 사실을 알게 된 후 가장 먼저 해야 할 일은 서버 연결을 끊는 것입니다. , 공격 소스를 차단하는 것 외에도 서버가 위치한 네트워크의 다른 호스트를 보호할 수도 있습니다.

2. 공격 소스 찾기

시스템 로그나 로그인 로그 파일을 분석하여 의심스러운 정보를 확인할 수도 있으며, 시스템에서 어떤 포트가 열려 있는지 확인해야 합니다. 이러한 프로세스를 통해 어떤 프로그램이 의심스러운지 분석합니다. 이 과정은 경험과 종합적인 판단을 바탕으로 추적, 분석되어야 한다. 다음 장에서는 이 프로세스의 처리 아이디어를 자세히 소개합니다.

3. 침입 원인과 방법을 분석해 보세요

시스템이 침해된 경우에는 시스템 취약점일 수도 있고, 프로그램 취약점일 수도 있으니 꼭 찾아보세요. 시스템 취약점인지, 프로그램 취약점인지 파악하고, 공격받는 방식과 공격 소스를 찾아야 합니다. 공격받는 이유와 방식을 알아야만 삭제할 수 있기 때문입니다. 공격의 근원지를 파악하고 취약점을 동시에 수정합니다.

4. 사용자 데이터 백업

서버가 공격을 받은 후에는 즉시 서버에 사용자 데이터를 백업하는 동시에 소스 여부를 확인해야 합니다. 공격의 내용은 데이터에 숨겨져 있습니다. 공격의 근원지가 사용자 데이터인 경우, 반드시 완전히 삭제한 후 안전한 곳에 백업하시기 바랍니다.

5. 시스템 재설치

공격의 근원지를 완전히 제거할 수 있다고 생각하지 마십시오. 공격 프로그램에 대해 해커보다 더 잘 아는 사람은 없기 때문입니다. 가장 안전한 가장 쉬운 방법은 시스템을 재설치하는 것입니다. 대부분의 공격 프로그램은 시스템 파일이나 커널에 첨부되므로 시스템을 재설치하면 공격의 원인을 완전히 제거할 수 있습니다.

6. 프로그램이나 시스템 취약점

시스템 취약점이나 애플리케이션 취약점을 발견한 후에는 가장 먼저 해야 할 일은 시스템 취약점을 고치거나 프로그램 버그를 수정하는 것입니다. 수리가 완료된 후에야 공식적으로 서버에서 실행할 수 있습니다.

7. 데이터 복원 및 네트워크 연결

백업된 데이터를 새로 설치된 서버에 복사한 후 서비스를 활성화하고 마지막으로 서버를 네트워크에 연결하여 활성화합니다. 외부 서비스를 제공합니다.

2. 의심스러운 사용자 확인 및 잠금

서버가 공격을 받고 있음이 발견되면 먼저 네트워크 연결을 끊어야 합니다. 네트워크 연결을 즉시 차단할 수는 없으므로 시스템에 로그인하여 의심스러운 사용자가 있는지 확인해야 합니다. 의심스러운 사용자가 시스템에 로그인하는 경우 즉시 사용자를 잠근 후 해당 사용자의 원격 연결을 중단해야 합니다.

1. 의심스러운 사용자를 보려면 시스템에 로그인하십시오.

루트 사용자로 로그인한 후 "w" 명령을 실행하면 해당 시스템에 로그인한 모든 사용자가 나열됩니다. 시스템은 아래 그림과 같습니다.

이 출력을 사용하면 로그인하는 의심스러운 사용자나 낯선 사용자가 있는지 확인할 수 있습니다. 또한 사용자 이름, 사용자 로그인 소스 주소 및 프로세스를 기반으로 불법 사용자인지 여부를 판단할 수도 있습니다. 달리고 있습니다.

2. 의심스러운 사용자 잠금

의심스러운 사용자가 발견되면 즉시 잠금해야 합니다. 예를 들어 위의 "w" 명령을 실행한 후에는 해당 사용자가 발견됩니다. 아무도 의심스러운 사용자가 되어서는 안 됩니다(아무도 기본적으로 로그인 권한이 없기 때문입니다). 따라서 먼저 이 사용자를 잠그고 다음 작업을 수행하십시오:

[root@server ~]# passwd -l none

잠긴 후에도 이 사용자는 여전히 로그인되어 있으므로 해당 사용자를 오프라인으로 추방해야 할 수 있습니다. 위의 "w" 명령 출력에 따르면 pid를 얻을 수 있습니다. 이 사용자의 로그인 값은 다음과 같습니다.

[root@server ~]# ps -ef|grep @pts/3

531 6051 6049 0 19:23 ? 00:00:00 sshd: none@pts/3

[root@server ~]# kill -9 6051

이렇게 하면 의심스러운 사용자가 누구도 차단되지 않습니다. 이 사용자가 다시 로그인을 시도하면 더 이상 로그인할 수 없습니다.

3. 마지막 명령을 통해 사용자 로그인 이벤트 보기

마지막 명령은 시스템에 로그인한 모든 사용자의 로그를 기록하며, 승인되지 않은 사용자의 로그인 이벤트를 찾는 데 사용할 수 있습니다. 마지막 명령의 출력 결과는 /var/log/wtmp 파일에서 나옵니다. 약간 경험이 있는 침입자는 자신의 위치를 ​​지우기 위해 /var/log/wtmp를 삭제하지만 이 파일에는 여전히 단서가 있습니다.

3. 시스템 로그 확인

공격 소스를 찾는 가장 좋은 방법은 시스템 로그를 보는 것입니다. 확인할 수 있는 시스템 로그는 /var/log/messages입니다. 및 /var/log/secure 등. 이 두 로그 파일은 소프트웨어의 실행 상태와 원격 사용자의 로그인 상태를 기록할 수 있습니다. 또한 각 사용자 디렉터리의 .bash_history 파일, 특히 / 디렉터리의 .bash_history 파일을 볼 수도 있습니다. 이 파일은 사용자가 실행한 모든 기록 명령을 기록합니다.

4. 시스템 의심 프로세스 확인 및 종료

ps, top 등 의심스러운 프로세스를 확인하는 명령은 많지만 프로세스 이름만 아는 경우도 있습니다. 그러나 경로는 알 수 없습니다. 이때는 다음 명령을 통해 확인할 수 있습니다.

먼저 pidof 명령을 사용하여 실행 중인 프로세스의 PID를 찾을 수 있습니다. sshd 프로세스에서 다음 명령을 실행합니다:

그런 다음 메모리 디렉터리에 들어가서 PID 디렉터리의 exe 파일에 해당하는 정보를 확인합니다.

이런 방법으로 해당하는 전체 실행 경로는 프로세스를 찾았습니다. 파일을 볼 수 있는 핸들이 아직 있으면 다음 디렉터리를 볼 수 있습니다:

[root@server ~]# ls -al /proc/13276/fd

다음 디렉터리를 볼 수 있습니다. 기본적으로 이러한 방식으로 모든 프로세스의 전체 실행 정보를 찾습니다. 또한 시스템 운영자가 의심스러운 프로세스를 찾는 데 도움이 되는 유사한 명령이 많이 있습니다. 예를 들어 지정된 포트나 tcp, udp 프로토콜을 통해 프로세스 PID를 찾은 후 관련 프로세스를 찾을 수 있습니다.

루트킷 백도어 프로그램과 같이 공격자의 프로그램이 깊숙이 숨겨져 있는 경우도 있습니다. 이 경우 ps, top, netstat 및 기타 명령이 대체되었을 수 있습니다. 시스템 자체 명령을 사용하여 의심스러운 프로세스를 확인하면 신뢰할 수 없게 됩니다. 이때 시스템의 의심스러운 프로세스를 확인하려면 타사 도구를 사용해야 합니다. chkrootkit 및 RKHunter와 같은 도구는 시스템에서 교체되거나 변조된 프로그램을 쉽게 검색할 수 있습니다.

5. 파일 시스템의 무결성을 확인하십시오.

파일 속성이 변경되었는지 확인하는 것은 파일 시스템의 무결성을 확인하는 가장 간단하고 직접적인 방법입니다. / bin/ls 파일의 크기가 일반 시스템에서 이 파일과 동일하여 파일이 교체되었는지 확인할 수 있지만 이 방법은 상대적으로 낮은 수준입니다.

이때 Linux에서 rpm 도구를 사용하여 검증을 완료할 수 있습니다.

출력된 각 표시의 의미는 다음과 같습니다.

S는 파일 길이가 변경되었음을 의미합니다. M 파일의 액세스 권한 또는 파일 유형이 변경되었음을 나타냅니다. 5 MD5 체크섬이 변경되었음을 나타냅니다. L은 기호가 변경되었음을 나타냅니다. U 파일/하위 디렉터리/장치 노드의 소유자가 변경되었음을 나타냅니다. 변경됨G는 파일/하위 디렉터리/장치 노드의 그룹이 변경되었음을 의미합니다. 변경되었습니다.

출력 결과에 "M" 표시가 있으면 해당 파일이 변조되었거나 교체되었을 수 있습니다. 이때 rpm 패키지를 제거한 후 다시 설치하면 지워집니다. 공격받은 파일.

그러나 이 명령에는 제한이 있습니다. 즉, rpm 패키지를 통해 설치된 모든 파일만 확인할 수 있고, rpm이 아닌 패키지를 통해 설치된 파일에 대해서는 아무 작업도 수행할 수 없습니다. 동시에 rpm 도구도 교체한 경우 이 방법을 사용할 수 없습니다. 이때 rpm 도구는 감지를 위해 일반 시스템에서 복사할 수 있습니다.

파일 시스템 검사는 chkrootkit과 RKHunter 두 도구를 통해서도 완료할 수 있습니다. chkrootkit과 RKHunter 도구의 사용은 다음번에 소개하겠습니다.