WordPress Security Checklist
Wordpress Security Checklist
워드프레스 보안 체크리스트
워드프레스가 컨텐츠 매니지먼트 시스템 (CMS, content management system) 으로서 인기를 끌기 시작하면서 해킹의 시도 또한 증가하고 있습니다. 2013년 4월 워드프레스를 사용한 90,000여개의 웹사이트가 공격을 당했습니다.
워드프레스는 수많은 자원봉사자에 의해서 만들어진 오픈소스 프로그램으로 모든 코드가 공개되어 있습니다. 그렇기 때문에 누구나 쉽게 워드프레스의 기능, 구조, 기본 세팅 등을 파악할 수 있으며, 악의적인 해커들은 이런 점을 놓지지 않고 해킹에 이용하고 있습니다.
이번 포스트는 워드프레스 보안을 위한 아주 기본적인 내용을 다루고자 합니다. 이번 기회에 워드프레스 보안에 대한 관심과 보안 설정을 업그레이드 하시길 바랍니다.
*워드프레스 뿐만 아니라 다른 CMS에서도 공통적으로 해당하는 사항이 많으니 참고하시길 바랍니다.
Wordpress Security Checklist
1. ID로 admin을 사용하지 말것
워드프레스 관리자가 ID로 admin을 사용한다면, 문을 반쯤 열어 놓은 것과 다름이 없습니다. 해커는 이제 패스워드만 알아내면 되기 때문입니다. 관리자가 ID로 admin을 사용하지 않는다면, 해커들은 관리자 ID를 구별해내야 하는 수고를 해야합니다. 또한 별명(nickname)은 ID와 다르게 설정하는 것이 좋습니다. 가장 좋은 것은 관리자 ID를 가늠할 수있는 힌트를 제공하지 않는 것입니다.
Admin ID 변경 방법
1. admin 계정으로 접속 2. 사용자>사용자 추가 3. 새로 추가한 사용자를 관리자로 등록 4. 새로 추가한 관리자로 접속 5. 사용자>모든 사용자 패널에서 admin 계정 삭제 6. 새로운 관리자 계정으로 사용 워드프레스 사용자추가 *모든 포스트와 링크를 새로운 관리자에게 승계하는 것을 잊지 마시길 바랍니다.
2. 패스워드 변경
수많은 ID와 패스워드를 관리해야하는 웹의 시대에 기억하고, 타이핑하기 쉬운 패스워드는 달콤한 유혹입니다. 아직도 많이 사용하는 패스워드로 1234, qwe, asd…. 이런 시리즈가 상위에 랭크되어 있는 것을 보면, 사람들이 편리함, 귀찮음이 여전히 중요한 삶의 포인트라는 것을 알 수 있습니다.
기억하기 어려운 패스워드가 좋은 패스워드입니다. 특수문자도 넣고, 대문자, 소문자를 혼용하여 사용하십시오. 예를 들어, @%#AohwNdls#$^ 와 같은 의미없는 패스워드는 얼핏 훔쳐보아도 기억하기 어렵고, 프로그램을 통한 경우의 수로 대입을 해보아도 엄청난 시간이 소요됩니다. 문제는 사용자도 역시 기억하기 어렵다는 단점이 있습니다.
다행인 것은 한국인의 경우 한글과 영문 두가지의 키보드를 사용한다는 것입니다. 예를 들어 "동해물과백두산이"를 영문 키보드에서 타이핑을 해보면, ehdgoanfrhkqorentksdl 가 됩니다. 아무런 의미도 없고, 직잠하기도 어렵습니다. 중간 중간, 대문자를 병행하고, 특수문자를 넣으면… ehdgoanfrhkQorentksDl67*( 이런식이면 암기하기도 쉬운편이고, 보안적으로는 거의 완벽에 가까워집니다.
또 다른 방법으로는 Lastpass나 keepass와 같은 계정/패스워드 관리 프로그램을 사용하는 것입니다. 아무리 어려운 패스워드라도 아무리 많은 패스워드라도 쉽게 관리가 가능합니다.
패스워드 조합에 따른 크랙킹에 걸리는 시간
Password: Aquarius
Time to Crack: 9.08 Mintues
Password: Aquarius1
Time to Crack: 1.59 Days
Password: Aquar$ius1
Time to Crack: 19.24 Years
Password: Aqu57ar$iu3s
Time to Crack: 17,400,000 Years
3. 최신버전 유지
워드프레스는 버전마다 기능향상, 보안 패치가 포함됩니다. 최신 버전을 이용하지 않는다면, 알려진 보안 헛점을 이용한 공격의 타겟이 될 수 있습니다.
플러그인 또한 최신 버전으로 업데이트해야하며, 사용하지 않은 플러그인은 삭제하길 바랍니다. 플러그인의 보안 헛점을 이용한 공격도 많이 보고 되고 있습니다.
4. 로그인 시도 제한
누구나 로그인을 무제한으로 시도할 수 있다면, 쉽게는 사람이 패스워드를 추측하여 접속할 수 있고, 복잡하게는 프로그램을 이용하여 문자 조합을 이용하여 패스워드를 알아낼 수 있습니다.
Limit Login Attempts 플러그인을 사용하면 쉽게 로그인 시도 제한을 설정할 수 있습니다.
Example of Lockdown Notification
잘못된 로그인 시도로 해당 IP의 접속을 제한한다는 내용. 이날 veriide.com 에 찾아본 불청객으로 11개의 IP가 블럭되었습니다.
A host, 190.107.146.17(you can check the host at https://ip-adress.com/ip_tracer/190.107.146.17) has been locked out of the WordPress site at https://www.veriide.com until Saturday, August 3rd, 2013 at 9:56 pm due to too many login attempts. You may login to the site to manually release the lock if necessary.
5. 로그인 창 접근 제한
관리자의 접속 편의성이 있겠지만, 커뮤니티나 포럼 사이트가 아닌 이상 로그인창 또는 로그인 링크를 웹사이트에서 삭제를 권합니다. 워드프레스의 기본 로그인 주소는 /wp-login.php입니다. 특별히 손대지 않는 이상 워드프레스로 만들어진 사이트는 모두 이곳에서 접속이 가능합니다. 접속주소를 변경하면, 해커의 접속을 미리 차단하는 효과를 얻을 수 있습니다.
Stealth Login Page 플러그인을 사용하면 쉽게 로그인 접근 주소를 변경할 수 있습니다.
6. 접속 로그 검토
로그를 검토함으로써 원하지 않은 활동을 알수 있습니다. admin 계정으로 접속을 시도한다던지, 404 에러를 유발한다던지, 제한된 디렉토리로 접속을 시도한다던지의 활동은 접속 로그 검토를 통해 알 수 있습니다. 이를 통해 블랙리스트 설정을 할 수 있습니다.
Simple Login Log 플러그인을 사용하면 쉽게 접속 로그를 살펴볼 수 있습니다.
Original Bad Bot / Web Scraper List
알려진 bad bot들입니다. 로그 검토를 통해 문제가 되는 것들만 접속금지(ban)하도록 합니다.
WebBandit
2icommerce
Accoona
ActiveTouristBot
adressendeutschland
aipbot
Alexibot
Alligator
AllSubmitter
almaden
anarchie
Anonymous
Apexoo
Aqua_Products
asterias
ASSORT
ATHENS
AtHome
Atomz
attache
autoemailspider
autohttp
b2w
bew
BackDoorBot
Badass
Baiduspider
Baiduspider+
BecomeBot
berts
Bitacle
Biz360
Black.Hole
BlackWidow
bladder fusion
Blog Checker
BlogPeople
Blogshares Spiders
Bloodhound
BlowFish
Board Bot
Bookmark search tool
BotALot
BotRightHere
Bot mailto:craftbot@yahoo.com
Bropwers
Browsezilla
BuiltBotTough
Bullseye
BunnySlippers
Cegbfeieh
CFNetwork
CheeseBot
CherryPicker
Crescent
charlotte/
ChinaClaw
Convera
Copernic
CopyRightCheck
cosmos
Crescent
c-spider
curl
Custo
Cyberz
DataCha0s
Daum
Deweb
Digger
Digimarc
digout4uagent
DIIbot
DISCo
DittoSpyder
DnloadMage
Download
dragonfly
DreamPassport
DSurf
DTS Agent
dumbot
DynaWeb
e-collector
EasyDL
EBrowse
eCatch
ecollector
edgeio
efp@gmx.net
EirGrabber
Email Extractor
EmailCollector
EmailSiphon
EmailWolf
EmeraldShield
Enterprise_Search
EroCrawler
ESurf
Eval
Everest-Vulcan
Exabot
Express
Extractor
ExtractorPro
EyeNetIE
FairAd
fastlwspider
fetch
FEZhead
FileHound
findlinks
Flaming AttackBot
FlashGet
FlickBot
Foobot
Forex
Franklin Locator
FreshDownload
FrontPage
FSurf
Gaisbot
Gamespy_Arcade
genieBot
GetBot
Getleft
GetRight
GetWeb!
Go!Zilla
Go-Ahead-Got-It
GOFORITBOT
GrabNet
Grafula
grub
Harvest
Hatena Antenna
heritrix
HLoader
HMView
holmes
HooWWWer
HouxouCrawler
HTTPGet
httplib
HTTPRetriever
HTTrack
humanlinks
IBM_Planetwide
iCCrawler
ichiro
iGetter
Image Stripper
Image Sucker
imagefetch
imds_monitor
IncyWincy
Industry Program
Indy
InetURL
InfoNaviRobot
InstallShield DigitalWizard
InterGET
IRLbot
Iron33
ISSpider
IUPUI Research Bot
Jakarta
java/
JBH Agent
JennyBot
JetCar
jeteye
jeteyebot
JoBo
JOC Web Spider
Kapere
Kenjin
Keyword Density
KRetrieve
ksoap
KWebGet
LapozzBot
larbin
leech
LeechFTP
LeechGet
leipzig.de
LexiBot
libWeb
libwww-FM
libwww-perl
LightningDownload
LinkextractorPro
Linkie
LinkScan
linktiger
LinkWalker
lmcrawler
LNSpiderguy
LocalcomBot
looksmart
LWP
Mac Finder
Mail Sweeper
mark.blonin
MaSagool
Mass
Mata Hari
MCspider
MetaProducts Download Express
Microsoft Data Access
Microsoft URL Control
MIDown
MIIxpc
Mirror
Missauga
Missouri College Browse
Mister
Monster
mkdb
moget
Moreoverbot
mothra/netscan
MovableType
Mozi!
Mozilla/22
Mozilla/3.0 (compatible)
Mozilla/5.0 (compatible; MSIE 5.0)
MSIE_6.0
MSIECrawler
MSProxy
MVAClient
MyFamilyBot
MyGetRight
nameprotect
NASA Search
Naver
Navroad
NearSite
NetAnts
netattache
NetCarta
NetMechanic
NetResearchServer
NetSpider
NetZIP
Net Vampire
NEWT ActiveX
Nextopia
NICErsPRO
ninja
NimbleCrawler
noxtrumbot
NPBot
Octopus
Offline
OK Mozilla
OmniExplorer
OpaL
Openbot
Openfind
OpenTextSiteCrawler
Oracle Ultra Search
OutfoxBot
P3P
PackRat
PageGrabber
PagmIEDownload
panscient
Papa Foto
pavuk
pcBrowser
perl
PerMan
PersonaPilot
PHP version
PlantyNet_WebRobot
playstarmusic
Plucker
Port Huron
Program Shareware
Progressive Download
ProPowerBot
prospector
ProWebWalker
Prozilla
psbot
psycheclone
puf
PushSite
PussyCat
PuxaRapido
Python-urllib
QuepasaCreep
QueryN
Radiation
RealDownload
RedCarpet
RedKernel
ReGet
relevantnoise
RepoMonkey
RMA
Rover
Rsync
RTG30
Rufus
SAPO
SBIder
scooter
ScoutAbout
script
searchpreview
searchterms
Seekbot
Serious
Shai
shelob
Shim-Crawler
SickleBot
sitecheck
SiteSnagger
Slurpy Verifier
SlySearch
SmartDownload
sna-
snagger
Snoopy
sogou
sootle
So-net” bat_bot
SpankBot” bat_bot
spanner” bat_bot
SpeedDownload
Spegla
Sphere
Sphider
SpiderBot
sproose
SQ Webscanner
Sqworm
Stamina
Stanford
studybot
SuperBot
SuperHTTP
Surfbot
SurfWalker
suzuran
Szukacz
tAkeOut
TALWinHttpClient
tarspider
Teleport
Telesoft
Templeton
TestBED
The Intraformant
TheNomad
TightTwatBot
Titan
toCrawl/UrlDispatcher
True_Robot
turingos
TurnitinBot
Twisted PageGetter
UCmore
UdmSearch
UMBC
UniversalFeedParser
URL Control
URLGetFile
URLy Warning
URL_Spider_Pro
UtilMind
vayala
vobsub
VCI
VoidEYE
VoilaBot
voyager
w3mir
Web Image Collector
Web Sucker
Web2WAP
WebaltBot
WebAuto
WebBandit
WebCapture
webcollage
WebCopier
WebCopy
WebEMailExtrac
WebEnhancer
WebFetch
WebFilter
WebFountain
WebGo
WebLeacher
WebMiner
WebMirror
WebReaper
WebSauger
WebSnake
Website
WebStripper
WebVac
webwalk
WebWhacker
WebZIP
Wells Search
WEP Search 00
WeRelateBot
Wget
WhosTalking
Widow
Wildsoft Surfer
WinHttpRequest
WinHTTrack
WUMPUS
WWWOFFLE
wwwster
WWW-Collector
Xaldon
Xenu's
Xenus
XGET
Y!TunnelPro
YahooYSMcm
YaDirectBot
Yeti
Zade
ZBot
zerxbot
Zeus
ZyBorg
7. 백업
보안은 창과 방패의 싸움입니다. 실제로 어느 쪽이 승리할지 장담할 수 없습니다. 때문에 가장 나쁜 상황까지 고려해야 합니다. 어느날 관리자 로그인은 불가능하고, 웹사이트는 악의적으로 훼손되었다면, 어떻게 해야할까요? 빠른 시간 내에 복구와 이런 사고를 방지하는 작업을 해야겠습니다.
웹파일과 DB 백업은 호스팅 업체에서 기본적으로 제공하는 경우가 많습니다만, 때로는 모든 자료를 복구할 수 없을 수 있습니다. 프로그램을 이용하여 정기적으로 백업하고, 백업한 자료를 안전한 곳에 보관하십시오.
UpdraftPlus – WordPress Backup and Restoration 플러그인은 자동으로 파일과 DB를 백업하여 클라우드 서비스에 안전하게 저장합니다.
8. 호스팅, 도메인 등록 사이트 보안체크
whois 를 통해 도메인 정보를 찾아보면 많은 정보가 노출되고 있습니다. 예를 들어, 노출된 정보를 통하여 도메인 등록 업체를 알아내고, 이메일 정보를 통해 ID를 유추하고, 게다가 1234… 시리즈의 패스워드를 사용했다면, 도메인 등록 정보를 맘대로 변경하거나 심하게는 도메인 소유권까지 이전당할 수 있습니다.
호스팅 서비스를 해킹당한다면 개인정보는 물론 DB, FTP 등 웹사이트에 관한 모든 권한을 잃을 수도 있습니다.
도메인 등록 서비스 접속 ID는 도메인 네임과 다르게 설정하시고, 어려운 패스워드를 사용하십시오. 호스팅 서비스 또한 도메인 네임과 다른 ID를 사용하고, 어려운 패스워드를 사용하는 방법이 최선의 방법입니다.
9. 통합 보안 플러그인 사용
워드프레스는 많은 유/무료 보안 플러그인이 있습니다. 손쉽게 일정 수준 이상의 보안 사항을 적용할 수 있습니다. 워드프레스 버전, 테마, 플러그인, 설정에 따라 충돌하는 경우가 있으니, 테스트를 권합니다.
보안 이야기는 끝이 없을 정도로 복잡하고 긴 내용입니다. 워드프레스 보안에 관하여 더 많은 정보를 원하시면 codex.wordpress.org 를 참고하시길 바랍니다.