컴퓨터 / Computer

봇(bot) 막기

꽁돌이 0 1,617 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

명품 프렌치 밀크 3단 양우산 K UV 여성 명화 양산 수동 우산 고급 VIP
소프트 남자반바지 빅사이즈 여름 밴딩 남성반바지
실크처럼 부드럽고 촉촉한 보습 케어 바디클렌져 750g
남자 여자 데일리 심플 다기능 포켓 서류가방 토트백
라팔 8구 청국장 요구르트 제조기
UTP 랜 케이블 1m 네트워크연결 인터넷랜선 랜선 네트워크구축 랜선연장
소니 NP-BX1 호환 LCD 듀얼 충전기 C타입5핀겸용
자광 콧털제거기 6512-고급코털깍기/코털정리기
무타공 면도기 스텐 거치대 걸이
철제 더블 옷장 무타공 튼튼한 스탠드 옷걸이 행거
화장품 수납정리대 파우더룸 메이크업 브러쉬
철제 스탠드 옷걸이 행거 2단 높은 DIY 인테리어 헹거
삼단봉 호신용 탄소강 휴대용 경봉
+1
남자 반바지 밴딩 트레이닝 여름 팬츠 패치반바지 캠핑반바지 남성 캐주얼반바지 벌룬반바지 여름반바지
자전거 핸들바 테이프
디디샵 그린 실리콘 도마 - 소

피에르가르뎅)리브라 만년필(PC3400FP 블루)
칠성상회
연습전용 펜돌리기 스피닝 젤리펜
칠성상회

맨위로↑