컴퓨터 / Computer

봇(bot) 막기

꽁돌이 0 271 09.02 16:15

0_fivEmSUN_cafc0046fceae53820e6e11ed19a3a0d3034ec3c.jpg 

0. 봇이란 무엇인가 

인터넷 초장기부터 사람이 아닌 프로그램이 인터넷을 돌아다니면서 자료를 수집해 왔다. (봇에 대해서는 여기 글을 참고. https://nordvpn.com/ko/blog/bot-meaning/ ) 초창기에는 사람이 검색해서 입력도 했는데 역시나 봇을 당할 수가 없다. 문제는 이 봇이 검색 뿐만 아니라 인공지능 관련해서 인터넷에 넘쳐난다는 점이다. 왜 문제인가. 이 봇들이 특정 웹 사이트가 한가한 시간 대에 접속하면 좋으련만 한번에 엄청난 트래픽을 일으켜 해당 웹 사이트를 다운 시킨다는 점이다. 마치 디도스 공격처럼 무지막지하게 공격이 들어간다. 봇이 아닌 사람이 접속을 못할 정도니, 이제는 착한 봇 나쁜 봇을 구분하기도 하고 아예 봇 자체가 못 들어오게 설정을 하기로 한다. 그래서 단계별로 봇 접속을 막는 방법을 나열해 보도록 한다. 


1. 접속 지역 제한

이 방법은 IDC나 클라우드 서비스를 제공하는 업체에 요청할 수 있다. 세계화 시대에는 전 세계에서 접속해 오는 ip들을 반겼는데, 지금은 해외에서 들어오는 대다수 ip들이 사람이 아니고 봇인 관계로 이들을 다 받아주면 서비스 이용료 폭탄이 된다. 이 이후 설명할 방법들 중에서 가장 확실하지만, 서비스 지역을 제한할 수 밖에 없다는 단점이 있다. 


2. 별도 솔루션 

CDN이나 클라우드 서비스를 제공하는 회사에서는 봇 차단을 하는 솔루션을 제공하고 있다. 해당 솔루션을 쓰면 임의로 악성 봇을 설정할 수도 있고 업체에서 선정한 봇 리스트에 따라서 차단을 할 수가 있다. 전 세계에서 접속을 해도 구분해서 받을 수 있고 새로운 봇이 나와도 업체에서 추가를 해 주니 편하다. 


참고

 - https://www.akamai.com/ko/glossary/what-are-anti-bot-tools

 - https://www.cloudflare.com/ko-kr/learning/bots/what-is-bot-management/


다만, 비용이 든다는 단점이 있다. 


3. 방화벽 

사용하고 있는 서비스의 서버 운영체제는 보통 리눅스, 윈도서버 버전, BSD 계열이나 상용 유닉스 계열 등이 많다. 해당 운영체제들이 모두 "방화벽"을 설정할 수 있다. 위 1에서 하드웨어 기반 방화벽을 사용한다면, 이 시기에는 소프트웨어 서버 기반 방화벽을 한다고 보면 된다. 예를 들어 firewalld 데몬에서 봇으로 판명된 ip를 "차단"해 버리면 된다. firewalld/zone 폴더에 public.xml 이 있는데 거기다 아래와 같이 추가하고 방화벽을 재시작한다. (참고 : https://www.7-star.net/bbs/board.php?bo_table=talk_computer&wr_id=711


  <rule family="ipv4">

    <source address="'B class IP'/16"/>

    <reject/>

  </rule>


단점은 접속 로그를 살펴 본 후에 대응할 수 있다는 점이다. 


4. 아파치에서 막기


 a. httpd.conf 이용


httpd.conf 를 통해서 접속 ip를 제한할 수 있다. (아래 문서 참조) 이 역시도 사건 발행 후 대응한다는 단점이 있다. 


참고 

 - https://hoing.io/archives/398


 b. 별도 프로그램 이용 

프로그램을 짜서 아파치 서버 단에서 해당 봇을 착을 수 있다. 이 프로그램은 상용 프로그램을 아파치 서버와 함께 실행한다. 


참고

 - https://github.com/mitchellkrogza/apache-ultimate-bad-bot-blocker/blob/master/README.md



5. .htaccess와 robots.txt 이용  

폴더 접근 권한을 설정하는 .htaccess 와 검색엔진 봇들을 제한하는 robots.txt 를 이용하는 방법인데, 효과는 확실하지만 자칫 잘못하면 외부에서 아예 접속이 안될 수도 있으니 해당 방법에 대해서 잘 알지 않으면 안 하는게 낫다. 


참고

 - https://www.iwav.co.kr/558



6. 웹 서비스에서 막기

 a. 웹 서비스 내 프로그램 내지는 코드 설정

  웹 서비스 내에서 아예 header에 bot 종류 별로 접속 시 차단해 버리는 프로그램을 넣는다. 이 방법 역시도 봇 리스트는 가지고 있어야 한다. 


 b. 캡차 

아래 화면처럼 캡차를 쓰는 방법도 있다. 이 경우에는 정상인이 한번 누른 후에 접속한다는 단점이 있기는 하지만 봇을 차단하는 효과는 확실히 있을 듯 하다.  

d2eed88da382accabdb95542b26a5d67_1725261336_3299.jpg
 





이 방법들 외에도 봇을 막는 방법들이 많다. 새로운 AI 서비스가 나오면 그때마다 새 봇들이 정상적인 웹 서비스들에 접근을 하기 때문에 항상 로그를 통해서 새 봇을 파악하는게 좋을 듯 하다.



*********

추가


비슷한 사례.


d2eed88da382accabdb95542b26a5d67_1725514530_529.jpg
 



Comments

여성 통굽 편한 여름 슬리퍼 여름 실내화 10cm 3컬러
베르 화장품파우치 3color 여행용파우치 여행용 가방
와이어 없는 빅사이즈 엄마브라
여성 가을 겨울 니트 목폴라 터틀렉 롱 원피스 베이지
이케아 PRODUKT 프로둑트 우유거품기 전동크리머 블랙
캥거 소음 측정기 층간소음 데시벨 소음계 KGA-350
K71GH 가상 7.1채널 RGB 게이밍 헤드셋 (반품불가)
대원 만능 스텐 믹서기 DWM-3500 십자날
무타공 아트월 액자걸이 대리석 틈새 후크 셋쿡
루비 욕실코너선반3단
코텍 싱크선반 유압브라켓(소K9045) 쇼바 상부장 고정
이케아 FABLER BJORN 파블레르 비에른 봉제인형 21cm
키친아트 라팔 칸칸 완전분리 밀폐 도시락 750G
원버튼 작동 모기 제로 전기모기채 (색상랜덤)
남성 나시 운동복 스포츠 쿨나시 헬스복 런닝 민소매
중형 물고기 열대어 전용사료 130g 250ml 먹이공급

모닝글로리 초등 1-2 14칸노트 초등학교 공책 쓰기
칠성상회
무지개 잉크패드
칠성상회

맨위로↑