내 사이트를 운영하는 데 사용중인 내용을 어떻게 숨길 수 있습니까?


72

첫 페이지의 소스 코드를보고 누군가가 내 사이트에서 Drupal을 사용하고 있음을 알 수 없도록 할 수있는 방법이 있습니까? 나는 알려진 약점을 사용하여 웹 사이트를 공격 할 수 있도록 웹 사이트를 실행하는 데 사용되는 소프트웨어를 탐지하는 소프트웨어를 사용하여 사이트를 스캔하는 사람들을 말합니다.

사이트에서 Drupal을 사용하고 있다는 사실을 완전히 숨길 수없는 경우, 노드 페이지를 같은 URL로 별칭 지정하는 등 사이트를 혼동 할 수 http://example.com/servlets/<node-id>.jsp있습니까?


76
Drupal을 숨기고 싶지 않습니다. Drupal은 굉장합니다.
Damien Tournoud

4
루트 디렉토리에서 CHANGELOG.txt 파일을 삭제하는 것은 어떻습니까! 그러나 진지하게-나에게 완전한 시간 낭비처럼 들립니다. 보안 업데이트를 최신 상태로 유지하면 Drupal이라는 사실을 숨길 필요가 없습니다. 백악관은 Drupal을 사용하고 있다는 사실을 숨기고 있습니까? 아니, 그들은 옥상에서 소리 쳤다 :)
Tom Kirkpatrick

10
이 경우 모호함을 통한 보안은 더 많은 보안을 제공하지 않습니다.
Bryan Casler

3
Cacking Drupal : bucket in a drop 을 읽고 Drupal 사이트 보안에 대한 훌륭한 논문입니다.
Mawg

2
보안 유스 케이스가 더 이상 없다고 생각되면 다음과 같은 대안이 있습니다 : 상업적 기밀성. 기업은 경쟁 업체가 자신의 사이트가 어떤 사이트에서 만들어 졌는지 쉽게 파악하기를 원하지 않을 수 있습니다. 또는 대행사 또는 컨설턴트가 현재 사용중인 도구 범위에 대해 경쟁 업체를 어둡게 유지하려고 할 수 있습니다.
user568458

답변:


53

이것은 오래되고 이미 대답 한 질문이지만 최근에 변경해야 할 모든 사항에 대한 설명을 작성하는 데 몇 가지 노력을 기울였습니다 .

  • Drupal 7의 메타 생성기를 제거하십시오
  • CHANGELOG.txt와 같은 대화 텍스트를 제거하십시오.
  • 만료 헤더 확인
  • HTTP 200/404/403 상태 코드에 대한 워킹 디렉토리
  • 기본 문자 메시지 찾기-모든 사용자 관련 메시지 조정
  • HTML을보십시오-핵심 및 모듈의 기본 HTML은 이야기입니다.

기본적으로 : 기술적으로 귀하의 사이트가 Drupal을 운영한다는 사실을 숨길 수는 있지만 그 가치가없는만큼 많은 시간을 할애 할 것입니다. 대신 보안 및 보안 작업 (예 : 업데이트를 빠르게 배포하고 로그를 모니터링하는 기능)에 중점을 두어야합니다.


Drupal이름을 변경해야하는 JavaScript 객체를 잊었습니다 .
Mołot

@Molot 좋은 지적. 가능합니까? 그것을하는 방법에 대한 조언이 있습니까? 내 요점은 그것을 할 가치가 없다는 것이므로 그것을 수행 하는 방법대한 조언을 더하면 그 점을 진전시킬 때만 도움이됩니다. 나는 당신이 언급 한 것을하기가 정말로 어렵
기를

글쎄, Drupal 디렉토리에서 대량 정규식 대체로 테스트했는데 효과가 있었지만 실제로는 믿지 않습니다. 그리고 물론 모든 모듈 업데이트마다 f * @ #입니다.
Mołot

옳은. 당신의 시간 가치가 없습니다. 더 중요한 것들에 집중 :)
greggles

101

완전히 숨길 수는 없습니다. 이를 위해서는 대부분 해킹 코어가 필요합니다. 가장 큰 정보 Drupal는 프론트 페이지 또는 그 문제에 대한 모든 페이지에서 읽을 수 있는 JavaScript 변수입니다.

Drupal 사이트임을 숨겨 사이트 보안을 향상 시키려면 Drupal로 사이트를 만들었다는 사실을 숨기려는 것보다 코드 검토에 더 많은 노력을 기울입니다.


7
동의했다. 또 다른 단점은 CSS / JS / 이미지 경로의 구조입니다.
Fuzzy76

2
또한 방문 /node/1하여 HTTP 헤더를 확인하거나 확인할 수 있습니다 .
Paul Jones

39
모호함을 통해 사이트를 보안으로 숨기려고하면 시간을 낭비하게됩니다.
Dave Reid

6
위의 모든 내용에 동의합니다. 게다가 CMS 비교를하는 사람들이 Drupal을 실행하는 멋진 사이트가 얼마나 많은지 알기가 더 어려울 것입니다. ;-)
geerlingguy

geerlingguy의 말과 관련하여 우리가 여기서 토론 한 내용은 다음과 같습니다. groups.drupal.org/node/113024#comments
coderintherye

42

너무 쉬워요, 키암!

  • 리버스 프록시를 사용하거나 http 데몬을 사용자 정의하여 성가신 Drupal http 헤더를 필터링하십시오.
  • Drupal 기본 폴더에 대한 http 액세스 거부
  • PHP 출력 버퍼링을 사용하여 HTML 소스를 다시 작성하고 가려서 불필요한 데이터를 제거하십시오.
  • URL 별칭 또는 custom_url_rewrite_in / outbound를 사용하여 URL을 혼란스럽게 만드십시오.
  • 기본 404 오류 변경, update.php 제거 / 변경
  • 누군가 알아 낸 경우 다른 변경을 수행하십시오.

마지막으로, 사이트가 너무 단순하여 일반적인 동작에 JS 또는 CSS가 필요하지 않고 (뷰 또는 Ctools 사용하지 않음) 사용자 인증 등을 지원하지 않는 사이트인지 확인하십시오. 정적 html 사이트만큼 간단합니다.

자, 사람들이 귀하의 사이트에서 Drupal을 실행하지 않는다고 믿게하는 모든 것. 어쨌든 모호한 보안은 쓸모가 없습니다.


@jcisio "어쨌든, 모호한 보안은 쓸모가 없습니다.", 당신은 당신의 코멘트 위에 이것을 추가했을 것입니다 : P.
arpitr

@arpitr 다른 사람들도 그렇게하기 때문에, 내가 필요는 없다고 생각합니다.)
jcisio

34

에 관한 공식 문서 및 토론이 같은가 .

당신은 할 수 없습니다. 시도하지 마

  • 자동화 공격 (가장 일반적인 공격) 공격 을 시도하기 전에 서버를 검사조차하지 않습니다 .
    유명 사이트의 로그를 검사하면 /AspBB/db/betaboard.mdb _private/cmd.asp /scripts/../../winnt/system32/cmd.exe /wp-login/ /administrator/components/com_wmtgallery/admin.wmtgal, /cgi-bin/ip.cgi...에 대한 수천 건의 무결 한 요청 과 관련없는 시스템의 과거 공격 시도에 대한 수많은 시도가 표시됩니다.
    익스플로잇에 대한 공격은 해당 익스플로잇이 OS 또는 CMS에없는 경우에도 발생합니다. 어쨌든 아마추어 해커는 사이트를 잘못 식별하기 위해 무시합니다.
  • 숨길 수 있다고 생각 하는 모든 시스템에 대한 다른 단서 가 있습니다.
    'drupal'이 포함 된 모든 문자열 중 일부만 제거해도 사이트가 합리적인 스 누퍼로 위장하지는 않습니다. 페이지를 제공하는 대상을 추측하는 데 사용할 수있는 수십 가지 방법이 있으며, 전용 서비스조차도 Drupal을 실행하는 사이트입니까? 당신이 인식하고 위협한다고 생각 하는 키워드 는 실제 지표의 작은 부분 집합입니다.
    index.php /? q = user를 요청하십시오. 그런 다음 사이트를 방해하지 않고 해당 응답을 비활성화하십시오.
  • 모호한 보안은 보안이 아닙니다. 실제 위협에 노출 된 공격자가 볼 수있는 스모크 스크린 뒤에 취약점 만 숨기면 '안전'하다는 잘못된 인상을줍니다.
  • 대부분 의 Drupal 흔적이 HTML 소스에서 숨겨 지는 지점까지 코드를 해킹하는 것은 완전히 불가능하지는 않지만 그렇게하려면 필요한 단계를 수행하면 코어가 심하게 손상 되어 코드의 해킹 된 지점이 될 수 있습니다. 패치 할 수없는 실제 보안 업데이트 와 호환되지 않으며 보안 팀이 식별 한 실제 미래의 위협에 진정으로 노출 될 수 있습니다. 이것은 시스템 취약점에 대한 진정한 경로입니다.
  • 가장 중요하거나 유용한 모듈에는 자체적 인 코드 '서명'이있어 다시 작성하지 않고도 숨길 수 없습니다. 'views', 'cck', 'ad', 'imagecache', 'jquery', css-aggregation, 기여 테마 또는 사이트에 유용한 항목을 사용하는 경우 누군가가 말할 수 있습니다 . 이를 숨기려면 일반적으로 테마 기능을 적어도 완전히 변환해야합니다. 그럼에도 불구하고 난독 화 는 효과가 없을 것 입니다.
  • Drupal Libraries를 사용하여 작동하는 Google Analytics의 쉬운 설치와 같은 많은 고급 기능의 식별을 제거하려면 해당 기능을 모두 포기하거나 Drupal 인프라를 활용하지 않는 방식으로 다시 작성해야합니다. . 때로는 이것이 가능하지만 모든 경우에 비생산적입니다.

사이트 보안 도 읽기에 관심이있을 수 있습니다 .

기억 코어를 해킹하지 마십시오


나는 이것에 동의하지만, 첫 번째 방어선으로도 PHP와 Drupal을 참조하는 헤더를 제거하는 것이 좋으며 인덱스가 아닌 PHP 스크립트에 대한 액세스를 허용하지 않는 것이 좋습니다. 물론, 사람들은 항상 Drupal을 실행하고 있음을 알아내는 방법을 찾을 것입니다. 그러나 가장 분별력이없는 해커에게는 인생을 조금 더 어렵게 만드는 데 아무런 해가 없습니다.
Matt Fletcher

1

귀하의 사이트가 Drupal을 운영한다는 것을 숨길 필요는 없습니다. 웹 사이트 개발을 보는 것은 잘못된 방법입니다. 집중해야 할 것은 보안입니다. 모든 유가 증권 조치를 이행해야하며 모든 것이 잘 될 것입니다. 세상에서 특정 cms 또는 다른 소프트웨어를 사용하고 있다는 사실을 숨길 이유는 없습니다. Wappalyzer와 같은 FF 애드온을 사용하면 사이트에서 Drupal을 사용하고 있는지 즉시 알 수 있으므로 질문은 꽤 어리 석습니다.


1

파일 별칭 모듈을 사용하여 기본 파일 구조를 변경하는 것도 있습니다.

파일 별칭 모듈은 당신에게 깨끗한 찾고 경로 (즉, 더 이상 / 사이트 / 기본 / 파일 /)를 제공하면서 평소에 따라 조직 된 파일 시스템을 유지하는 기능을 제공, 사용자가 업로드 한 파일에 대한 토큰 사용자 정의 별칭을 사용할 수 있습니다.


1
과? 그것은 프로세스의 작은 부분을 수정하고 아마도 가장 중요한 부분은 아닙니다.
greggles

1
위 사람들의 정답을 다시 한 번 반복하고 싶지 않았습니다. 팁 하나만 더 추가하면 그렇습니다.이 팁은 지금까지 수행하기가 가장 어려웠으므로 일반적으로 웹 마스터는 이것을 제외하고 일반적인 단계를 수행하기 때문에 사이트를 이해하는 유일한 방법은 드루팔입니다. 예,이 파일 구조 / 폴더 구성으로 인해 드루팔 사이트라는 것을 이해하는 것은 매우 쉽습니다.
john

1

나는 당신이 그것을 완전히 숨길 수 없다는 다른 사람들과 동의합니다. HTML 소스를 보면 CSS 및 JavaScript 파일이 여러 번 집계되지 않은 것을 알 수 있습니다. CSS 및 JavaScript 집계가 사용 가능해야합니다.


0

과거에는 Lucida Sans와 같은 일반적인 Ruby 프로젝트 글꼴로 글꼴을 교체했으며 모든 힙합 아이들과 마찬가지로 입력 크기를 늘 렸습니다.

또 다른 공짜는 자동 완성 필드를위한 "강도"그래픽입니다. 입력 크기를 늘리면 작동하지 않습니다. 여기 훔칠 수있는 것이 있습니다 : http://beta.seattlebedandbreakfast.com/misc/throbber.gif

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.