태양광 및 BESS 현장에서 산업 보안을 조사하며 배운 점
Source: Dev.to
실제 태양광 발전소와 배터리 저장소 현장에서 매일 일하면, 다른 사람들이 놓치는 것들을 눈치채게 됩니다. 저는 BESS 야드를 관리하고, 인버터를 검사하고, SCADA 캐비닛에 연결하며, 현대 에너지 인프라의 일상적인 운영 현실을 다룹니다. 이러한 관점은 유틸리티, 개발자, 통합업체가 더 많은 자산을 그리드에 연결하면서 직면하는 과제들을 앞자리에서 볼 수 있게 해줍니다.
지난 몇 주 동안 저는 태양광 및 BESS 설치 전반에 걸친 산업 사이버 보안을 체계적으로 조사하기 시작했습니다. 목표는 어떤 것을 악용하려는 것이 아니라 현장에서 실제로 무슨 일이 일어나고 있는지, 어떤 위험이 떠오르고 있는지, 그리고 유틸리티와 운영자가 어디에 주의를 기울여야 하는지를 이해하는 것이었습니다.
이 글은 네 단계에 걸친 연구 결과를 요약합니다: 인터넷에 노출된 장치 스캔, 공급업체 문서 분석, GitHub 구성 검토, 그리고 노출된 제어 인터페이스 식별. 이 단계들을 종합하면 업계 전반에 걸친 명확한 패턴이 드러납니다. 에너지 부문이 얼마나 빠르게 현대화되고, 연결성이 얼마나 급속히 확대되었으며, 보안이 그 속도를 따라가지 못하고 있음을 보여줍니다.
Day 1: The Internet Already Knows More Than You Think
첫 번째 단계는 간단했습니다. 공개 도구와 Google 검색을 이용해 이미 인터넷에 보이는 것이 무엇인지 파악했습니다. 결과는 충격적이었습니다.
Findings
- 418,000개의 에너지 관련 장치가 온라인에서 접근 가능
- 132개의 유틸리티가 공개 시스템 또는 포털을 보유
- 검색 엔진에 색인된 수십 개의 변전소, 인버터, 계량기, SCADA 관련 인터페이스
이 모든 작업에 고급 기술은 필요 없었습니다—단지 호기심과 시간이 필요했을 뿐입니다.
이것이 현대 인프라의 현실입니다. 유틸리티가 분산 에너지 자원을 통합하고, SCADA 네트워크를 현대화하며, 원격 지원 기능을 추진함에 따라 노출이 필연적으로 증가합니다. 원격 접근은 비용을 절감하고 유지보수를 가속화하지만, 잘못 구성되었거나 보안이 취약한 경로는 쉽게 발견될 수 있습니다.
Lesson: 숨겨져 있다고 생각하는 모든 것이 이미 색인되어 있을 수 있습니다. 자산이 무해하더라도 식별될 수 있다는 사실 자체가 중요합니다. 공격자는 눈에 보이는 대상을 노립니다.
Vendor Manuals Tell Their Own Story
다음으로 공개된 공급업체 문서—제조업체가 온라인에 게시한 PDF—를 살펴보았습니다. 기밀도 없고, 내부 자료도 없으며, 유출된 것도 없습니다.
What the manuals reveal
- 기본 사용자 이름
- 기본 비밀번호
- 기본 IP 주소 체계
- 신뢰할 수 있는 격리된 네트워크를 전제로 한 설정 절차
- 의미 있는 비밀번호 복잡성 요구사항 부재
한 Schneider Electric 전력계량기 매뉴얼은 기본 인증 정보를 공개적으로 나열했고, 또 다른 Modbus 장치는 인증이 선택 사항이라고 명시했습니다. 여러 장치는 최소한의 보안 안내만 있는 웹 구성 포털을 제공했습니다.
운영 기술은 격리가 보안 모델이던 환경에서 성장했습니다. 울타리로 둘러싸인 변전소나 잠긴 제어 하우스 문 뒤에서는 기본 인증 정보가 위험하다고 여기지 않았습니다. 오늘날 같은 장치가 기업 네트워크, 원격 접근 경로, 클라우드 집계기, 공급업체 지원 터널을 통해 점점 더 접근 가능해지면서, 물리적 보안 문제였던 것이 사이버 보안 문제로 변했습니다.
문서는 종종 과거 사고 방식을 반영하며, 그 격차는 실제적인 결과를 초래합니다.
GitHub Reveals How These Systems Are Actually Deployed
세 번째 단계는 GitHub에서 구성 파일과 산업용 코드 스니펫을 검색하는 것이었습니다. 민감한 정보를 찾기 위한 것이 아니라 실제 엔지니어링 패턴을 이해하기 위한 것이었습니다.
Results
- 프로덕션에서 사용되는 하드코딩된 Modbus 레지스터 매핑
- 태양광 발전소, 변전소, 계량 시스템의 평문 호스트 IP
- 포트 502를 직접 참조하는 Python Modbus 스크립트
- Schneider, SMA, 맞춤형 EMS 배포를 위한 인버터 통합 코드
- 실제 설치와 매우 유사해 보이는 테스트벤치 구성
이 공개 저장소들은 엔지니어가 학습하거나 실험하거나 예제를 공유하기 위해 만든 것입니다. 이들은 실제 배포에 그대로 이어지는 습관—약한 인증, 보안이 취약한 기본값, 은폐에 의존하는 시스템—을 드러냅니다.
GitHub 자체가 문제는 아닙니다; 단지 산업 엔지니어들의 작업 방식을 반영할 뿐입니다. 많은 구성은 여전히 신뢰할 수 있는 환경을 전제로 하고 있으며, 이는 현실과 맞지 않을 때가 많습니다.
The Most Concerning Finding: Public‑Facing SCADA Interfaces
네 번째 단계는 산업 플랫폼의 공개 로그인 화면을 식별하는 것이었습니다. 여기서 연구는 더욱 심각해졌습니다.
즉시 눈에 띈 노출 시스템: HTTP를 통해 접근 가능한 전체 Ignition Gateway 로그인 패널.
- 공개 IP를 통해 접근 가능
- TLS 암호화 없이 HTTP로 제공
- 전체 Ignition Gateway 로그인 폼 표시
- 이를 실행 중인 Windows 서버의 호스트 식별자 표시
이것이 반드시 시스템이 핵심적이라는 의미는 아니며, 누구든지 로그인할 수 있다는 뜻도 아닙니다. 다만 내부 전용이어야 할 SCADA 시스템이 실수로 공개 인터넷에 노출되었다는 점을 확인시켜 줍니다—이는 절대 일어나서는 안 되는 시나리오입니다.
또한 포트 8105에서 원격 접근 로그인 화면을 발견했습니다. HTTP를 통해 브라우저 기반 인증 프롬프트를 제공했습니다. 이러한 인터페이스는 원격 데스크톱 도구, 임베디드 HMI, 씬클라이언트 게이트웨이, 혹은 공급업체 유지보수 유틸리티에 속하는 경우가 많습니다.
이 모든 결과를 종합하면, 산업 시스템이 요구되는 네트워크 격리와 암호화를 충분히 받지 못하고 있다는 더 큰 패턴이 드러납니다.
Why These Findings Matter
산업 사이버 보안은 이론이 아닙니다. 전력망, 변전소, 배터리 저장소, 태양광 발전소는 물리적 시스템입니다. 잘못된 구성은 단순히 데이터를 유출하는 것이 아니라 장비, 안정성, 가동 시간을 위협합니다.
식별된 문제들은 실제 운영 트렌드를 반영합니다:
- 매년 더 많은 산업 장치가 네트워크에 연결됨
- 지원을 위해 원격 접근에 의존하는 시스템 증가
- 레거시 장치는 더 이상 존재하지 않는 격리를 전제로 함
- 운영 기술이 클라우드 연계 아키텍처로 전환 중
요컨대, 그리드는 보안보다 더 빠르게 연결되고 있습니다.
보험사들은 이미 이를 인식하고 있습니다. 인수자는 SCADA 인터페이스에 대한 MFA, 세분화, 원격 공급업체 접근 등에 대해 점점 더 많은 질문을 합니다. 규제 기관도 NERC, FERC, DOE, 주 차원의 감독 기관을 통해 요구 사항을 강화하고 있습니다.
에너지 부문은 사이버 보안을 선택적 비용이 아닌, 운영 신뢰성의 핵심 요소로 더 이상 간주할 수 없습니다.
What I Built to Explore the Problem
제 이해를 깊게 하기 위해 저는 BESS와 태양광 보안 스캐너를 만들기 시작했습니다. 목적은 악용이 아니라 탐지입니다.
The tool is designed to identify:
- 공급업체 배너
- Modbus 응답성
- 기본 포트
- 암호화되지 않은 인터페이스
- 구성 아티팩트
- 장치 지문
- 태양광 및 BESS 네트워크 내 노출 경로
아이디어는 간단합니다. 운영자가… (이하 내용이 이어지지 않았음)