728x90
1,2 차례 공격을 막고 나니 공격을 치료하는 프로그램에 쓰인 인증서를 차단하여 동작하지 못하게 하였다
1. 증상
'시스템 관리자가 이 앱을 차단하였습니다'
2. 원인&공격 방식 분석
배포사측 인증서를 신뢰되지 않은 게시자에 등록하여 해당 인증서로 쓰인 프로그램들이 실행할 수 없게 만듦
3. 해결방법
- 우선 신뢰되지 않은 게시자에서 직접 눌러서 제거도 가능하나 불특정 다수 PC에 일일이 설정할 수 없으므로 해당 정보가 들어있는 레지스터 삭제
procedure UntrustedCertificates;
const
//신뢰할 수 없는 인증서 레지스터 경로
Key = '\SOFTWARE\Policies\Microsoft\SystemCertificates\Disallowed\Certificates';
FP1 = '1234abcd'; //해당 인증서1의 지문
FP2 = 'abcdef12345'; //해당 인증서2의 지문
var
Reg: TRegistry;
SubNameList: TStringList;
i: Integer;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey(Key, false) then
begin
SubNameList := TStringList.Create;
try
Reg.GetKeyNames(SubNameList);
for i := 0 to SubNameList.Count - 1 do
begin
if (SubNameList[i] = UpperCase(FP1)) or (SubNameList[i] = UpperCase(FP2)) then
begin
try
Reg.DeleteKey(SubNameList[i]);
except
On E: Exception do
begin
Continue;
end;
end;
end;
end;
finally
FreeAndNil(SubNameList);
end;
Reg.CloseKey;
end;
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey(Key, false) then
begin
SubNameList := TStringList.Create;
try
Reg.GetKeyNames(SubNameList);
for i := 0 to SubNameList.Count - 1 do
begin
if (SubNameList[i] = UpperCase(FP1)) or (SubNameList[i] = UpperCase(FP2)) then
begin
try
Reg.DeleteKey(SubNameList[i]);
except
On E: Exception do
begin
Continue;
end;
end;
end;
end;
finally
FreeAndNil(SubNameList);
end;
Reg.CloseKey;
end;
finally
FreeAndNil(Reg);
end;
나의 경우는 지문값으로 인증서를 대조했다
728x90
'일기장 > 악성코드' 카테고리의 다른 글
악성코드 공격 -6 (작업 스케줄러, VB스크립트+bat) (0) | 2021.05.31 |
---|---|
악성코드 공격 -5 (비밀폴더 변형 + Registry Guard Service) (0) | 2021.05.26 |
악성코드 공격 -4 (oh!soft - 비밀폴더(hfFilter.sys) / 미니필터) (0) | 2021.05.25 |
악성코드 공격 -2 (SRP - 소프트웨어 제한 정책) (0) | 2021.05.18 |
악성코드 공격 -1 (윈도우 방화벽 설정) (0) | 2021.05.17 |