Child pages
  • github 에 이중 인증(two factor authentication, 2FA) 적용해서 보안 강화하기(gitlab, bitbucket 포함)


개요

해킹으로 인해 취할수 있는 경제적 이득이 많아지다 보니 분야를 막론하고 전방위적으로 해킹이 일어나고 있습니다.


특히 데이타가 중요하다 보니 랜섬웨어처럼 데이타를 암호화하고 볼모로 돈을 요구하는 경우가 정밀해지고 다양해져서 대응도 어려워지고 피해도 커지고 있습니다.


최근에는 기업들도 github 를 사용해서 프로젝트 소스를 올리고 관리하는 경우도 많은데 github 계정을 다른 시스템 계정과 동일하게 사용할 경우 다른 곳을 털릴 경우 github 도 같이 털릴 확률이 높아지게 됩니다.


해커들은 계정을 탈취한 후에 github 프로젝트를 삭제(물론 해커 PC로 clone 은 받았겠죠.)하고 복구를 댓가로 비트코인을 요구하는 경우가 있다고 하니 이들의 창의력과 부지런함에는 놀랍기도 합니다.


또 다른 사례로는 실수 또는 운영의 편의성때문에 "AWS instance에 SSH 로 접근하기 위한 private key"를 github 프로젝트에 올려 놨을 경우 이를 가져가서 해당 인스턴스에 접속한 후에 채굴기를 돌려서 요금 폭탄을 맞게 하기도 합니다.


이런 공격에 대응하기 위해서는 몇 가지 중요한 보안의 기본 원칙을 갖추고 실행하는 것이 큰 도움이 됩니다.


그중에 하나는 민감한 정보(SSH private key, DB 접속 정보)를 저장소에 올리지 않는 것입니다. 이를 위해서는 12 factor app 의 설정 항목에 나온 것처럼 소스 코드와 설정을 분리하는 작업이 필요합니다.


2번째는 이 글에서 설명할 이중 인증을 적용하는 것입니다. 이중 인중을 적용하면 id와 암호가 노출되어도 계정을 도용하는 것을 막을 수 있습니다.


github 설정

2 factor 인증을 사용할 경우 원격 저장소 연결 프로토콜을 ssh 가 아닌 https 를 사용하면 pull/push 가 제대로 안 됩니다. 이경우 ssh 로 변경하거나 github token 을 받아서 등록해 줘야 합니다.


권장하는 2 factor 인증 방법은 Mobile TOTP 이며 github 에서 추천하는 앱은 Authy , 1Password, LastPass Authenticator 로 미리 휴대폰에 설치해 놓습니다.


이제 github 에 로그인한 후에 Settings → Security 에 들어가서 Enable two-factor authentication  을 활성화합니다.


활성화가 끝났으면 다음과 같이 인증 방법을 묻는 화면이 나오는데 저는 app 을 사용할 예정이므로 Set up using an app  를 선택했습니다.


그러면 다음과 같이 휴대폰 분실등의 경우에 복구할 수 있도록 Recovery codes  가 나오는데 꼭 다운로드한 후에 백업해 두어야 합니다.


그후에 QR Code 가 표시되면 앱을 띄워서 스캔한 후에 6자리 숫자를 입력하면 2 factor auth 설정이 완료됩니다.

Authy 의 경우 앱의 우측 상단 메뉴를 클릭하고 Add acount  를 누르면 QR 스캔할 수 있습니다.



등록이 끝났으면 다음과 같은 화면이 나오는데 SMS 로 복구할 수 있도록 사용하는 전화 번호를 하나 등록해 줍니다.




휴대폰 인증이 끝났으면 이제 계정 보안 강화를 위한 2 factor 인증 설정이 완료되었고 다음부터는 로그인시에 OTP 번호를 같이 넣어주면 됩니다.


gitlab 설정


  1. gitlab 에 로그인 한 후에 Profile settings  메뉴에 들어갑니다.
  2. Account  → Two-Factor Authentication  의 Enable  버튼을 클릭합니다.
  3. QR Code 가 나오면 OTP app 으로 스캔한 후에 나온 6자리 숫자를 넣어서 등록합니다.
  4. 등록이 완료되면 아래와 같은 화면이 나오는데 꼭 Download codes  를 눌러서 복구 코드를 다운로드 한 후에 Proceed  를 클릭합니다.
  5. 이제 Proceed  를 클릭하면 2 factor 인증 설정이 완료됩니다.



Bitbucket 설정

추가 예정입니다.


참고