강제로 우리의 SQL Server 'sa'계정에 로그인하려고하는 사람에 대해 어떻게해야합니까?


9

누군가 또는 무언가가 'sa'계정으로 프로덕션 SQL Server 인스턴스에 로그인하려고하는 무차별 대항 시도를하고있는 것 같습니다. Google 'sa'계정이 사용 중지되어 성공하지 못했지만 보안을 유지하기 위해 어떤 단계를 수행해야하나요?

로그인 시도


1
야. 우리의 삶을 계속 진행할 수 있도록 답으로 표시하십시오. :)
JohnThePro

답변:


29

인터넷에서 SQL 서버를 공개해야합니까? 일반적으로 그렇지 않습니다. 이 방법이 꼭 필요한 경우 IP 주소로 액세스를 제한하거나 VPN을 설정할 수 있습니다. 분명히, sa 암호를 알아볼 수 없게 만들거나 LAN IP 주소에서만 sa 로그인 위치를 제한하는 방법을 참조하십시오. 다른 사람들이 더 나은 솔루션을 제공 할 수 있도록 자세한 내용을 알려주십시오.


3
물론입니다. 방화벽을 사용하고 공격 영역을 최소화하는 전형적인 사례입니다.
Rob Moir

게다가 그것은 누군가가 아닙니다. 그것은 인간이 아니라 거의 벌레입니다. 인터넷의 SQL Server + 기본 포트를 변경하지 않음 = 실제를 완전히 무시 함 (인터넷은 좋지 않은 곳).
TomTom

5

가장 먼저 할 수있는 일은 해당 IP 주소를 블랙리스트에 추가하고 방화벽에서 IP의 모든 트래픽을 완전히 거부하는 것입니다. 물론 IP를 변경할 수도 있지만 최소한 트래픽과 로그로 서버를 공격하는 것을 막을 수 있습니다.


3

방화벽을 통해 해당 포트를 비활성화하십시오 (MySQL은 3306입니다. SQL Server의 포트는 118입니까?). 그러면 아무도 액세스 할 수 없습니다.
SQL에 대한 외부 액세스가 필요한 경우 53535와 같이 높은 번호의 포트에 다시 맵핑하십시오. 해당 포트가 열려 있다고 판단되면 그 중요성을 추측하기가 어렵습니다.


1433; 외부에 열려 있어야하는 경우 다른 것으로 변경하십시오. 그러나 클라이언트에서 연결 문자열을 변경해야합니다.
SqlACID

또한 발견 서비스를위한 1434 년
AviD

3

로그인시 악성 코드를 삽입하려고 시도합니다. 서버의 방화벽 소프트웨어 또는 타사 외부 방화벽을 사용하여 영구 블랙리스트로이 활동을 차단하는 것이 좋습니다.

또한 침입자의 IP 주소를 자동으로 차단하므로 허용되는 로그인 실패 횟수를 줄이십시오.

위는 이것을 최소화합니다.


2

아마도 스캐너를 실행하고 시간을 투자 할 가치가없는 일부 스크립트 아동 일 것입니다. 인터넷에서 데이터베이스에 액세스 할 수 없도록하겠습니다.


2
  • 가능하면 SQL 인증없이 Windows 인증 만 활성화하는 것이 아니라 모든 SQL 계정 액세스를 비활성화하십시오.
  • 방화벽을 통해 또는 최소한 상자에 대한 IP 제한을 통해 네트워크 액세스를 액세스가 필요한 서버로 제한하십시오. 공개 사용자는 직접 액세스 할 필요가 없습니다.
  • 다음에 로컬 관리자를 무차별 적으로 시도 할 것임을 고려하십시오. 실제로 관리자 권한을 제거 할 수는 없지만 특정 역할에 드롭하여 액세스를 명시 적으로 차단할 수 있습니다.
  • 가능하면 SQL Server Browser 서비스를 비활성화하십시오. 더 쉽게 만들 이유가 없습니다 ...
  • 데이터베이스에서 사용자, 권한 및 비밀번호에 대한 완전한 분석을 수행하십시오. 다음에 다른 사용자를 시도 할 것입니다.
  • 자세한 정보 는 ITSecurity.SE 에서 다시 요청하십시오. :)

2

네트워크 외부에서 SQL Server에 액세스 할 수 있어야하는 경우 액세스가 필요한 외부 IP 주소를 화이트리스트에 추가 할 수 있습니다. VPN은 더 나은 솔루션이지만 항상 사용 가능한 것은 아니며 최상의 솔루션은 외부 액세스가 아닙니다.

화이트리스트를 작성하려면 더 많은 관리가 필요하지만 이러한 어리 석음을 제거합니다. 누군가 액세스가 필요하고 자주 변경되는 IP가있는 경우 RDP를 통해 다른 시스템에 로그인하여 SQL Server에 연결할 수 있습니다.

sa 계정의 이름을 바꾸고 가짜 sa 계정을 만든 다음 비활성화하십시오.

모든 SQL Server 사용자 계정에 대한 권한 감사 및 암호 업데이트 트리거 암호 강도 요구 사항을 높일 수 있습니다.

SQL Server IP 수신 포트의 번호를 다시 지정하십시오. 이는 클라이언트 구성 또는 응용 프로그램 구성 파일을 업데이트하는 것을 의미합니다.

가능한 다음 공격 경로에 관한 다른 포스터에 동의하며 아마도 스크립트를 실행하는 사람 일 것입니다.


1

IPSEC 정책, 필터 등을 생성하고 이벤트 로그를 자동으로 스캔하고 차단 목록에 IP를 추가하는 프로그램을 찾는 사람이라면 누구나 그렇게하는 작은 프로그램을 작성했습니다.

이 문제는 해커가 'sa'로그인으로 MSSQL 인스턴스에 로그인하려고 시도하는 수천 개의 항목으로 이벤트 로그가 채워지는 곳에서도 발생했습니다. 많은 검색을 한 후, 나는 내 자신의 프로그램을 작성하고 필요한 IPSEC 항목을 생성 한 다음 60 초마다 이벤트 로그를 스캔하여 새 IP 주소의 공격이 있는지 확인했습니다. 그런 다음 IP 주소를 IPSEC 필터에 추가하고 IP와의 모든 트래픽을 차단합니다. 나는 이것을 Windows Server 2008에서만 테스트했지만 다른 버전에서도 작동한다고 생각합니다.

아래 링크를 사용하여 프로그램을 다운로드하십시오. 작업 관리자 아이콘의 오른쪽 클릭 메뉴에있는 링크를 사용하여 항상 기부에 감사드립니다.

http://www.cgdesign.net/programs/AutoBlockIp.zip

이것은 'sa'로그인을 사용한 SQL 로그인 시도에만 작동하지만 다른 로그 이벤트에서도 작동하도록 수정할 수 있습니다. 또한 차단 된 IP를 볼 수 있지만 프로그램은 60 초마다 실행되므로 이벤트 로그에 일부 항목이 계속 표시됩니다. 단일 이벤트 로그 항목을 삭제할 수 없기 때문에 전체 로그를 삭제하는 것이 좋습니다 생각하지 않았습니다.

면책 조항 -위에서 언급 한 프로그램을 다운로드하여 설치함으로써, 귀하는 소프트웨어의 사용으로 인한 손상, 데이터 손실, 손상 또는 기타 기능 문제에 대해 무해한 것으로 간주합니다. 이 프로그램을 최선을 다해 테스트했으며 현재 2 대의 서버에서 실행하고 있지만 사용자는 자신의 책임하에 사용하도록 경고했습니다.

질문이나 의견이 있으면 내 웹 사이트 www.cgdesign.net의 연락처 양식을 사용하여 언제든지 연락하십시오.

크리스


귀하는 제품과의 제휴 관계를 공개하는 것이 좋습니다. 일반적으로 영업 세션에 감사하지 않습니다.
Scott Pack

0

로그인 시도를 제한해야하므로 동일한 사용자가 5 회 이상 로그인을 시도하면 몇 시간 또는 하루 동안 추가 시도가 차단됩니다. 적어도 그들은 백만 번의 시도 후에 강제로 로그인 할 수 없습니다.

다른 사람들이 말했듯이 공개 액세스가 필요하지 않은 경우 허용하지 마십시오. 일부 사용자가 외부 액세스가 필요한 경우 알려진 IP 세트에 대한 액세스를 제한 할 수 있습니다.


1
계정이 이미 비활성화되어있어 더 이상 비활성화 할 수 없습니다.
mrdenny

@ mrdenny : 나는 첫 번째 단락에 대해 비활성화되지 않은 계정에 대해 더 많이 생각하고있었습니다. 누군가가 'sa'를 강요 한 경우 다른 계정으로 쉽게 시작할 수 있습니다. 비활성화 된 계정에서 5 번 시도한 후에는 완전히 차단하십시오.
DisgruntledGoat

스크립트 키티는 일반적으로 이미 사용자 이름을 알고 있으므로 sa 계정 만 공격합니다. 그렇지 않으면 사용자 이름도 무자비하게 만들어야하는데 두 배나 걸리고 사용자 이름의 존재 여부를 알 방법이 없습니다.
mrdenny
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.