명령 하나로 검사한 유해 프로그램을 완전히 삭제
저자: Tian Yi(formyz
)
여러 웹
프로젝트
에서 공유하는 하나의 NFS
서버. 이러한 디렉토리에는 사용자가 업로드한 PHP
프로그램, 그림, HTML
페이지, 문서 및 첨부 파일 등이 포함됩니다. 일부 웹
프레임워크는 오래되었고 업로드된 파일에 대해 엄격한 보안 검사를 수행하지 않기 때문에 이 NFS
서버는 보호된 내부 네트워크에 있지만 여전히 많은 수의 악성 파일이 은밀한 동기를 가진 사람들에 의해 업로드됩니다. 프로그래머에게 프로그램 업데이트(Discuz
)를 강력하게 요청했는데, 업데이트가 프로그래밍 방식으로 처리하기에는 너무 어렵다는 답변이 돌아왔습니다. 시스템 관리 수준에서 임시 조치는 shadu
소프트웨어를 설치하고 공유 디렉터리를 검사한 다음 이러한 유해 파일을 삭제하는 것입니다(증상을 치료하지만 근본 원인은 치료하지 않음).
공유 스토리지 NFS
는 Centos 7.9
에 배포되었으며, 저장 공간은 44T
, 사용 공간은 4.5T
입니다(아래 그림 참조). 상대적으로 관리가 허술하여 정크 정보의 양이 많습니다. 이는 정리 및 보관되지 않습니다.
과거의 경험과 사용 습관을 바탕으로 우리는 NFS
서비스가 위치한 호스트 시스템인 Centos 7.9
에 오픈 소스이자 유명 보안 소프트웨어인 Clavam
을 배포하기로 결정했습니다. 공식 프로모션은 "
ClamAV
입니다.
®
은 트로이 목마, 바이러스, 맬웨어 및 기타 악성 위협을 탐지하기 위한 오픈 소스 바이러스 백신 엔진입니다
”–ClamAV®
는 트로이 목마, 바이러스, 맬웨어 및 기타 악성 위협을 탐지하기 위한 오픈 소스 안티 바이러스
엔진입니다
” 바이러스, 악성 코드, 기타 악성 위협이 언제부터인지 공식 홈페이지 하단의 로고가 네트워크 장비 제조사인 CISCO로 변경되었습니다. 그럼에도 불구하고 Clamav는 현재 오픈 소스이며, 제한 없이 사용할 수 있습니다. 7.9
, Clamav
를 배포하고 설치하는 방법에는 최소한 3가지
방법이 있습니다: 아래 그림과 같이 RPM
바이너리 패키지, 바이너리 소스 코드 및 온라인 패키지 관리 도구 "yum"
이 있습니다.
Centos 7.9에서 Clamav
를 배포하고 설치하는 가장 쉽고 편리한 방법은 "yum install
"입니다. 시스템 명령줄에서 "yum install clamav
"를 실행해 보세요. 실행 과정과 출력은 다음과 같습니다.
안타깝게도 Clamav는 소프트웨어 저장소에 포함되어 있지 않아 시스템에 올바르게 설치할 수 없습니다. "epel-release
" 추가 소프트웨어 저장소를 다시 추가하고 "yum install epel-release
" 명령을 실행해 보세요. 그런 다음 "yum list clamav
"를 계속 실행하면 아래 그림과 같이 첨부된 창고 목록에 이미 "clamav
" 소프트웨어 패키지가 포함되어 있음을 알 수 있습니다.
정식 설치를 위해서는 "yum install clamav
" 명령을 실행하세요. 기본 소프트웨어 Clamav 외에도 아래 그림과 같이 여러 다른 종속 패키지가 함께 설치되어 있습니다.
소스 패키지에서 설치하는 것에 비해 설치 과정 중 오류 출력을 기반으로 필요한 종속성을 하나씩 설치할 필요가 없으므로 효율성이 크게 향상됩니다.
처음 설치되어 배포되는 Clamav
의 bingdu
라이브러리는 상대적으로 오래되고 뒤떨어져 있습니다. 스캔 식별 누락을 줄이기 위해 시스템 명령줄에서 bingdu
서명 라이브러리를 업데이트해야 합니다. bingdu
라이브러리 업데이트를 실행하는 명령은 매개 변수나 옵션 없이 "freshclam
"입니다. 실행 과정과 출력은 아래 그림과 같습니다.
Bingdu
라이브러리는 이미 최신 버전입니다. 공식적으로 스캔을 실행하기 전에 SSH 원격 터미널의 연결이 끊어져 스캔이 중단되는 것을 방지하려면 "화면
"에서 스캔을 수행하는 것이 좋습니다. "screen
" 명령을 실행했는데 해당 명령이 존재하지 않는다는 메시지가 나타나면 "yum install screen
"을 사용하여 설치하세요. "screen
" 명령을 올바르게 실행한 후 시스템은 즉시 Shell
프롬프트로 돌아갑니다. 이때 정식으로 다음 명령을 입력하여 문제가 의심되는 공유 디렉터리를 완전히 검사하고 그 결과를 "/var/" 로그 파일에 기록합니다. log/clamscan.log”
.
clamscan -r /data -l /var/log/clamscan.log
오랜 기다림 끝에 스캔이 완료되기까지 며칠이 걸렸습니다. 스캔 로그 파일을 확인하여 악성 파일이 있는지 확인하십시오.
[root@nas wenku]# grep FOUND /var/log/clamscan.log
/data/cu/attachment/forum/201305/29/22155372jcjxtt0vfx2uk2.zip: Win.Trojan.IRCBot-785 FOUND
/data/cu/attachment/forum/201501/05/155857clzd9d10bwdpl3s0.zip: Unix.Trojan.Agent-37008 FOUND
/data/cu/attachment/forum/201501/10/2110526a6afrfrzvas2h25.zip: Win.Tool.Chopper-9839749-0 FOUND
/data/cu/attachment/forum/201501/10/210932qsy27wsnwazswagr.zip: Win.Tool.Chopper-9839749-0 FOUND
/data/cu/attachment/forum/201405/18/082512hhjnzummmnuu4i8i.zip: Unix.Dropper.Mirai-7338045-0 FOUND
/data/cu/attachment/forum/201205/11/084024426448y1bk6jmmb9.zip: Win.Trojan.SdBot-13589 FOUND
/data/cu/attachment/forum/201206/05/092231faffjiak6z3gkzqv.zip: Win.Malware.Aa93a15d-6745814-0 FOUND
/data/kong/blog/attach/attachment/201603/9/30229789_1457535724sulu.jpg: Win.Trojan.Generic-6584387-0 FOUND
……………. 더 생략하기………………….
/data/wenku/App_Data/Documents/2012-03-10/7da3d2c7-6d16-44c2-aab1-e8a317716c15.txt: Dos.Trojan.Munga-4 FOUND
/data/wenku/App_Data/Documents/2014-02-17/4ed74e66-54d1-46b5-8a41-4915ced095a5.ppt: Xls.Trojan.Agent-36856 FOUND
/data/wenku/App_Data/Documents/2014-02-23/c5c1dfa6-9f04-4e53-b418-4d711ce5408d.ppt: Win.Exploit.Fnstenv_mov-1 FOUND
/data/wenku/App_Data/Documents/2014-07-15/ae2dfca5-ddef-4c41-8812-bcc5543415e1.txt: Legacy.Trojan.Agent-34669 FOUND
|
'FOUND '라는 키워드가 포함된 레코드가 총 500 10개 이상 있으며, 배포 경로가 불규칙합니다. 이렇게 흩어져 있는 악성 파일은 디렉토리를 삭제해도 처리가 불가능합니다. 절대 경로에 따라 하나씩 수동으로 삭제하면 비효율적이고 오류가 발생하기 쉬우며, 이런 방식으로 배포된 악성 파일이 수천 개라면 수동으로 하나씩 삭제하는 것은 기본적으로 불가능합니다.
"clamscan " 명령 자체에는 검사한 악성 파일을 직접 삭제할 수 있는 "--remove " 옵션이 있지만, 이는 관련 담당자가 확인한 바가 없어 논란이 있을 수 있습니다. 따라서 문제가 있는 악성파일은 관련 담당자에게 제시하여 확인을 거쳐야 하며, 이의가 없는 경우에만 이동 또는 삭제가 가능합니다.
Clamav 에서 검사한 로그 파일에서 시작하고 도구를 사용하여 악성 파일의 전체 경로를 추출하세요.
[root@nas wenku]#grep FOUND /var/log/clamscan.log |awk -F[:] '{print $1}'
/data/wenku/App_Data/Documents/2016-04-11/8fe8d01e-e752-4e52-80df-f202374b2b6d.doc
/data/wenku/App_Data/Documents/2016-04-11/03a14021-279f-45cd-83c5-b63076032c9e.doc
/data/wenku/App_Data/Documents/2016-04-11/c45ddc01-ec3d-4a54-b674-8c2082d76ce3.doc
/data/cu/attachment/forum/201305/29/22155372jcjxtt0vfx2uk2.zip
/data/cu/attachment/forum/201501/05/155857clzd9d10bwdpl3s0.zip
/data/cu/attachment/forum/201501/10/2110526a6afrfrzvas2h25.zip
/data/cu/attachment/forum/201501/10/210932qsy27wsnwazswagr.zip
/data/cu/attachment/forum/201405/18/082512hhjnzummmnuu4i8i.zip
/data/cu/attachment/forum/201205/11/084024426448y1bk6jmmb9.zip
/data/cu/attachment/forum/201206/05/092231faffjiak6z3gkzqv.zip
……………… 일부 생략 ………………………………
|
원래 로그와 비교했을 때 콜론 ": " 및 모든 후속 필드가 제거되었습니다. 이 명령 뒤에 파이프라인을 추가하고 "xargs "로 매개변수를 전달하여 배포된 경로에 관계없이 검사된 모든 악성 파일을 정리합니다.
grep 발견 /var/log/clamscan.log |awk -F[:] '{print $1}'| xargs rm -rf
|
실행 후 검사한 여러 악성 파일의 전체 경로를 무작위로 찾습니다. 파일이 존재하지 않아야 합니다( 아래 그림 참조). 이는 스크립트가 정확하고 예상한 결과임을 의미합니다.
|
위 내용은 한번의 명령으로 검사한 유해프로그램을 완전히 삭제하세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!