시스템은 복잡해져도, 위협 대응은 더 빨라져야 합니다.
복잡한 노이즈 속에서 단순화를 찾겠습니다.
수백 건의 방화벽 정책 신청서를 수기 검토하던 비효율을 해결하기 위해 Excel로 개발한 첫 번째 자동화 도구입니다. 신청서의 IP 정보를 입력하면 60여 대의 방화벽 중 경유 장비를 자동으로 식별하고, 정책별 상세 내역을 즉시 확인할 수 있도록 구현했습니다.
정확도 향상 및 정책 검토 시간 단축 (10분 → 1분)
구간 정합성 검증과 동시에 일관된 현황 관리 체계 마련
별도 인프라 구축 없이 .xlsm 파일만으로 즉시 도입
Function CheckFirewalls(inputData As Object) As Variant
Dim fwEntries As Object, keysToRemove As Object
' ...
' 출발지 IP가 방화벽 객체 범위 내에 있는지 확인
If srcIPRange(0) <> "" And srcIPRange(0) <= fw(i, 4) And srcIPRange(1) >= fw(i, 3) Then
data_p(0) = True
End If
' 목적지 IP가 방화벽 객체 범위 내에 있는지 확인
If destIPRange(0) <> "" And destIPRange(0) <= fw(i, 4) And destIPRange(1) >= fw(i, 3) Then
data_p(1) = True
End If
' 유효한 엔트리만 Dictionary에 추가
target_p = CStr(fw(i, 0) & Chr(124) & fw(i, 1) & Chr(124) & fw(i, 5))
If (data_p(0) Xor data_p(1)) And Not fwEntries.Exists(target_p) Then
fwEntries.Add target_p, Array(data_p(0), data_p(1))
End If
End Function
기존 Excel 스크립트를 고도화하여 개발한 웹 기반 초기 모델입니다. IP 파싱, 정책 매칭, 라우팅 분석 등 핵심 로직부터 직관적인 웹 UI까지 Python과 JavaScript로 자체 구현하여 외부망 연동 없이 내부망에서 독립적으로 동작하는 기반을 마련했습니다.
경로 → 망용도 → NAT → 라우팅 → 컴플라이언스 분석까지 한 번에 처리
NAT 정책 검토 실수 0건 달성으로 운영 안정성 확보
변동이 잦은 방화벽 현황과 IP 자산을 DB로 통합 관리하여 데이터 정합성 및 최신성 확보
displayResults(analysisResult) {
const { results, summary } = analysisResult;
// 1. 요약 정보 (적용 구간) 렌더링
let summaryHtml = '';
if (summary.permanent.size > 0) {
summaryHtml += `<div>...</div>`;
}
// 2. 상세 테이블 생성
const tableRows = results.map(res => {
const { input, firewall } = res;
const esc = (str) => String(str).replace(/</g, "<").replace(/>/g, ">");
return `<tr>...</tr>`;
}).join('');
this.dom.resultsContent.innerHTML = summaryHtml + tableHtml;
}
복잡한 네트워크 구성을 D3.js를 활용해 직관적인 토폴로지로 시각화하는 도구입니다.
이후 이 도구와 방화벽 분석 도구를 다음 섹션에서 소개할 NSOP이라는 도구로 결합시켰습니다.
물리적·논리적 네트워크 구조의 직관적 파악
구성도를 팀원들과 공유하여 원활한 의사소통에 기여
복잡한 네트워크 구조를 시각적으로 교육하여 신규 입사자의 적응 시간 단축
initD3() {
const width = this.dom.canvas.clientWidth;
const height = this.dom.canvas.clientHeight;
this.d3.svg = d3.select(this.dom.canvas).append("svg")
.attr("viewBox", `0 0 ${width} ${height}`)
.call(this.d3.zoom);
this.d3.simulation = d3.forceSimulation()
.force("link", d3.forceLink().id(d => d.id).distance(150))
.force("charge", d3.forceManyBody().strength(-400)) // 반발력
.force("center", d3.forceCenter(width / 2, height / 2))
.on("tick", () => this.ticked());
}
방화벽 분석 도구의 분석, 데이터 관리 기능과 토폴로지 시각화 도구를 합치고, 조직 내 협업을 위한 칸반 보드도 겸비하여 단일 플랫폼으로
고도화했습니다.
파편화된 데이터와 프로세스를 연결해 보안 운영 전반을 유기적인 워크플로우로 재정의하고, 실시간 협업 체계를 통해 개인의 노하우를
팀의 공통 지식 자산으로 전환하기 위한 목표로 개발했습니다.
협업 도구(칸반 보드) + 방화벽 분석기 + 데이터 현황 + 토폴로지 시각화 + 작업 로그
페이지를 열어두어도 변경 사항이 실시간으로 업데이트
칸반 보드로 업무 흐름을 시각화하여 누락 방지 및 협업 가시성 제고
체험용 ID: demo
다수의 WAF 장비와 보안 정책별로 분산된 시그니처 상태를 단일 화면에서 직관적으로 확인하고 관리할 수 있도록 개발한 도구입니다. Splunk SPL 자동 생성, 위험도/정확도 기반 필터링 등 운영 효율화 기능을 통해 WAF 정책 관리의 복잡성을 해소했습니다.
분산된 장비별 시그니처 상태를 단일 뷰로 통합하여 정책 불일치 및 미적용 현황 즉시 파악
SPL 자동 생성으로 시그니처별 탐지 현황 조회를 위한 쿼리 작성 시간 최소화
위험도/정확도 기반 필터링으로 오탐 가능성이 높은 시그니처를 사전에 검토 후 적용
다양한 벤더의 방화벽에서 추출된 서로 다른 포맷의 NAT 정책을 표준화된 CSV 포맷으로 자동 변환하는 PowerShell 스크립트입니다.
신규 벤더 장비 도입 시 확장 파싱하여 표준 포맷으로 통합
수기 관리의 한계를 극복하고 표준화된 데이터 기반 분석·관리 환경 마련
# Excel COM 객체 생성 및 백그라운드 실행
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false; $excel.DisplayAlerts = $false
# 대상 폴더 내 모든 .xlsx 파일 반복 처리
Get-ChildItem -Path $PSScriptRoot -Filter *.xlsx | ForEach-Object {
try {
$workbook = $excel.Workbooks.Open($_.FullName)
# 1. 벤더별 포맷 차이 정규화
if ($worksheet.Range("D2").Text -eq "Interface") {
$worksheet.Columns.Item(4).Insert()
}
# ...
# 5. CSV 포맷으로 변환 저장
$csvFilePath = [System.IO.Path]::ChangeExtension($_.FullName, ".csv")
$workbook.SaveAs($csvFilePath, 6)
} finally {
$workbook.Close($false)
}
}