컴퓨터 / Computer

봇(bot) 막기

꽁돌이 0 1,714 2024.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

여성플랫슈즈 로퍼 리본단화 스웨이드 모카신 LK-YB2
활용도 좋은 전면 투포켓 포인트 크로스 보온보냉가방
스포츠 등산 여름 용 남성 트레킹 샌들 아쿠아 슈즈
해피바스 대나무숯 피지흡착 클렌징폼 200ml 2개
갤럭시S23 가죽 플립케이스 카드 수납 지갑형 SM-S911N
갤럭시탭S4 10.5 종이질감 액정보호필름
갤럭시Z폴드7 6 5 4 3 2 엘라스틱 밴드스트랩 하드 범퍼케이스 ZFold7 제트폴드5 지폴드4 Z폴드3
스파이더 핸드폰 거치대
의자발커버 실리콘 의자고무발 4개세트 중형반투명
3M 코맨드 화이트 리필테이프 대 4개입
테니스공 의자 발커버 4P 식탁의자발커버 소음방지공 의자발커버
수납함 신발 정리대 투명 블랙 케이스 보관함 10개입
체리쉬 강아지 배변 탈취제 파우더향 500ml
키친아트 예리하고 섬세한 올스텐 감자칼 필러
이케아 MEDELVAG 메델보그 병솔 유리병 브러쉬
낫소 탁구 지주네트 세트

올뉴 말리부 하이브리드 와이퍼 650mm450mm 세트
칠성상회
편지쓰는잉크펜 사각사각 실용성 6종 컬러풀 손글씨감성펜
칠성상회

맨위로↑