成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

這個開源神器讓我在Github輕松賺到10000美金

安全 數(shù)據(jù)安全
本文是為bug賞金獵人以及其安全團隊編寫的,演示了用戶發(fā)布到Github公共存儲庫的常見敏感信息類型,以及查找這些秘密的啟發(fā)性方法。本文中的技術也可以應用到GitHub Gist片段中。

每天都有各種各樣的API密鑰、密碼和客戶數(shù)據(jù)被發(fā)布到Github上。黑客使用這些密鑰登錄服務器,并收取費用,Github泄密可能會給公司造成數(shù)千甚至數(shù)百萬美元的損失。在Github上收集源碼的情報已經(jīng)成為每個網(wǎng)安工作人員的必備手段,有研究人員還針對該主題寫了一篇學術論文。

本文是為bug賞金獵人以及其安全團隊編寫的,演示了用戶發(fā)布到Github公共存儲庫的常見敏感信息類型,以及查找這些秘密的啟發(fā)性方法。本文中的技術也可以應用到GitHub Gist片段中。

在過去的一年里,我在沒有訪問程序網(wǎng)站的情況下,通過HackerOne上的漏洞獎賞獲得了近1萬美元的收益。向不同公司提交了30多份協(xié)同披露報告,其中包括8家財富500強公司。

我還發(fā)布了GitHound,這是一個開源工具,用于在GitHub上自動查找密鑰。GitHound并不局限于單個用戶或組織,它會篩選整個Github倉庫,使用代碼搜索查詢作為進入存儲庫的入口點,然后使用上下文、正則表達式和其他一些巧妙的技巧快速查找密鑰。

Github代碼搜索

在我們進入自動化工具和漏洞獎賞策略之前,我們先說一說代碼搜索。Github提供了豐富的代碼搜索,可以掃描GitHub公共存儲庫(這里忽略一些內容,比如fork和非默認分支),像uberinternal.com那樣簡單,也可以包含多個字符串,也可以包含類似"Authorization: Bearer"這樣的多單詞字符串,甚至可以針對特定的文件進行搜索,(如文件名:vim_settings.xml)或特定的語言(如SQL)。還可以搜索vim_settings.xml。

了解了Github代碼搜索的規(guī)則,我們就可以設計出搜索dork,用它來查詢敏感信息,dork可以在網(wǎng)上找到,但最好的Dork都是自己創(chuàng)造的。

例如,filename: vim_settings.xml針對的是IntelliJ設置文件。有趣的是,vim_settings.xml文件包含最近用Base64編碼的復制粘貼字符串。我也因為發(fā)現(xiàn)了這個問題而賺了2400美元,SaaS API密鑰和客戶信息在vim_settings.xml中被暴露。

xml只包含最近復制粘貼的字符串,但是我們可以利用存儲庫的提交歷史來查找整個復制粘貼歷史。只需要克隆代碼庫并運行這個14行腳本,用戶的活動就掌握在你手中,GitHound還可以查找并掃描base64編碼的字符串以查找密鑰,甚至在提交歷史中也是如此。

值得一提的是,通過Github提交搜索,我們可以用GitHound快速掃描查找base64編碼的字符串以查找密鑰,甚至在提交歷史中也是如此。

給Bug賞金獵人的一些啟發(fā)

Github的dork通常能找到敏感的密鑰,但如果我們想要尋找某個特定公司的信息呢?GitHub有數(shù)百萬個存儲庫和更多的文件,因此我們需要一些啟手段來縮小搜索空間。

想要尋找敏感信息,首先要確定一個目標,最好的辦法就是先從目標公司基礎架構中的域或子域下手。

用company.com搜索可能不會提供有用的結果,大多公司發(fā)布的開源項目都是經(jīng)過審核的,不太可能包含密鑰,較少使用的域和子域機會還大一些,其中包含主機,如jira.company.com,以及更一般的二級和低級域名。查找模式比查找單個域更有效:corp.somecompany.com、somecompany.net或companycorp.com更有可能只出現(xiàn)在員工的配置文件中。

以下常見的開源情報與域偵查工具可能會對你有所幫助:

  • Subbrute - 用于蠻力破解子域的Python dork
  • ThreatCrowd - 給定一個域,通過多種OSINT技術查找相關域
  • Censys.io- 給定一個域,找到使用它的SSL證書

GitHound還可以幫助進行子域發(fā)現(xiàn):添加一個自定義regex \.company\.com并使用——regex文件標志運行GitHound。

在找到要搜索的主機或模式后,可以使用GitHub搜索(在使用自動化工具之前,我總是這樣做)。這里要注意以下幾個問題:

  • 搜索出來的結果有多少?如果有超過100個頁面,我可能需要找到一個更好的查詢重新開始(Github將代碼搜索結果限制為100頁)。
  • 結果是什么?如果搜索結果主要是開源項目和使用公共api的人,那么我可能可以改進搜索把這些去掉。
  • 如果改變語言會發(fā)生什么?language:Shell 與 language:SQL可能會產生有趣的結果。
  • 這些結果是否揭示了其他域名或主機?前幾頁的搜索結果通常會包含對另一個域名的引用(比如搜索jira.uber.com可能會顯示另一個域名的存在,比如uberinternal.com)。

我在這一方面花了大量的時間,搜索空間的定義和它的準確性是至關重要的,自動工具和手動搜索將更快和更準確的查詢。

一旦我根據(jù)上面的標準發(fā)現(xiàn)了有趣的結果,我就會使用帶有 --dig-files 及 --dig-commits 參數(shù)在GitHound中運行,查看整個存儲庫的歷史。

  1. echo "uberinternal.com" | ./git-hound --dig-files --dig-commits  
  2. echo "uber.com" | ./git-hound --dig-files --language-file languages.txt --dig-commits  
  3. echo "uber.box.net" | ./git-hound --dig-files --dig-commits 

GitHound還可以找到簡單搜索無法找到的有趣文件,比如.zip或.xlsx文件。重要的是,我還手動查看結果,因為自動化工具經(jīng)常會漏掉客戶信息、敏感代碼和用戶名/密碼組合。通常,這將會讓你發(fā)現(xiàn)更多的子域名或其他有趣的東西,給我更多搜索查詢的想法,最重要的是要記住,開源情報是一個遞歸的過程。

這個過程幾乎都能讓你有所得,泄露通常分為以下幾類(從影響最大到影響最小):

  • SaaS API密鑰——公司很少對API施加IP限制。AWS、Slack、谷歌和其他API密鑰都是機會。這些通常可以在配置文件、bash歷史文件和腳本中找到。
  • 服務器/數(shù)據(jù)庫憑證——這些通常在防火墻后面,所以它們的影響較小。通常可以在配置文件、bash歷史文件和腳本中找到。
  • 客戶/員工信息——這些信息隱藏在XLSX、CSV和XML文件中,范圍從電子郵件一直到賬單信息和員工績效評估。
  • 數(shù)據(jù)科學腳本 - SQL 查詢、R 腳本以及 Jupyter 項目等都有可能暴露敏感信息。這些庫中也往往帶有“測試數(shù)據(jù)”文件。
  • 主機名/元數(shù)據(jù)——最常見的結果,大多數(shù)公司不認為這是一個漏洞,但他們可以幫助改進未來的搜索。

針對特定 API 提供程序的入侵流程

還可以特定的API提供者及其端口創(chuàng)建Dork,這對于為用戶的API密鑰創(chuàng)建自動檢查的公司尤其有用。通過了解API鍵的上下文和語法,可以明顯減少搜索空間。

通過了解特定的API提供者,我們可以獲得與API提供程序正則表達式相匹配的密鑰,然后我們可以使用內部數(shù)據(jù)庫或API端點檢查它們的有效性。

例如,假設一家公司(HalCorp)為用戶提供了一個API來讀寫他們的帳戶。通過創(chuàng)建我們自己的HalCorp帳戶,我們發(fā)現(xiàn)API鍵的形式是[a-f]{4}-[a-f]{4}-[a-f]{4}。

  1. # Python 
  2. import halapi 
  3. api = halapi.API() 
  4. api.authenticate_by_key('REDACTED') 
  5.  
  6. # REST API with curl 
  7. curl -X POST -H "HALCorp-Key: REDACTED" https://api.halcorp.biz/userinfo 

有了這些信息,我們可以為HalCorp API響應編寫自己的GitHub程序:

  1. # Python 
  2. "authenticate_by_key" "halapi" language:python 
  3.  
  4. # REST API 
  5. "HALCorp-Key" 

使用GitHound這樣的工具,我們可以使用正則表達式匹配來找到匹配API鍵的正則表達式的字符串,并將它們輸出到文件中:

  1. echo "HALCorp-Key" | git-hound --dig-files --dig-commits --many-results --regex-file halcorp-api-keys.txt --results-only > api_tokens.txt 

現(xiàn)在我們有了一個包含潛在API令牌的文件,我們可以根據(jù)數(shù)據(jù)庫檢查這些令牌的有效性(如果沒有API提供者的書面許可,請不要這樣做)。

對于HalCorp,我們可以編寫一個bash腳本來讀取stdin,檢查api.halcorp.biz/userinfo端點,并輸出結果。

最后的啟發(fā)

盡管人們對GitHub上的敏感信息曝光的意識有所增強,但每天被曝光的敏感數(shù)據(jù)依然很多,如果用戶的API密鑰被發(fā)布到網(wǎng)上,Amazon Web服務已經(jīng)開始通知用戶。GitHub增加了一些安全功能,可以掃描公共存儲庫以獲取通用密鑰。然而這些措施治標不治本,為了遏制源代碼的秘密泄露,我們必須更新API框架和DevOps方法,以防止API密鑰完全存儲在Git/SVN存儲庫中。像Vault這樣的軟件可以安全地存儲產品密鑰,而一些API提供商,像谷歌云平臺,已經(jīng)更新了他們的庫,強制API密鑰默認存儲在一個文件中。

徹底根除敏感信息的暴露是一個比較困難的問題,如何才能完全檢測到用戶信息?如果是Word、Excel或編譯文件呢?我們還需要在這個領域進行更多的研究,才有可能找出解決方法。

 

責任編輯:趙寧寧 來源: 開源最前線
相關推薦

2021-03-25 15:14:45

GitHub代碼開發(fā)者

2020-09-15 09:50:47

程序員技能開發(fā)者

2025-03-12 00:52:00

Java樂觀鎖悲觀鎖

2021-09-08 07:49:33

開源Web框架

2023-04-18 18:22:31

開源工具數(shù)據(jù)庫

2021-05-17 10:32:10

命令行工具GitHub代碼

2020-09-07 15:46:48

GitHubVim開發(fā)

2021-03-26 15:18:11

代碼工具Mockoon

2021-08-17 07:15:16

Github開源項目

2015-02-03 02:43:57

2020-03-17 10:45:11

GitHub代碼開發(fā)者

2021-09-16 15:52:05

GitHub命令URL

2021-06-28 10:06:21

開源文本識別pyWhat

2021-09-30 08:40:28

Oracle數(shù)據(jù)庫后端開發(fā)

2021-03-05 06:53:08

Android安卓自動化APP

2022-04-21 10:14:02

Yandex開源數(shù)據(jù)庫

2022-06-21 08:50:13

開源MegPeak處理器

2020-02-24 10:45:44

代碼開發(fā)工具

2020-01-07 14:44:09

GitHub代碼開發(fā)者
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美日韩国产综合 | 中文字幕国 | 国产精品一区一区三区 | 精品乱人伦一区二区三区 | 久久看精品 | 欧美日韩专区 | 国产婷婷精品 | 中文字幕在线观看一区二区 | 久久久久久久久久久久久久国产 | 国产亚洲精品精品国产亚洲综合 | 久久男人 | 网站黄色在线免费观看 | 久久99精品久久 | 91精品国产91久久久久久 | 日本免费一区二区三区四区 | 黄色a级一级片 | 国产精品资源在线 | 欧美一区二区三区在线观看 | 91国内精品久久 | 国产精品18久久久久久白浆动漫 | 亚洲毛片| 国产黄色一级片 | 日韩欧美在线播放 | 亚洲成人免费视频在线 | 91成人在线 | 欧美日韩专区 | 日本免费视频 | 国产在线精品一区二区三区 | 丝袜 亚洲 欧美 日韩 综合 | 精品国产青草久久久久福利 | 中文字幕视频在线观看免费 | 中文字幕日韩三级 | 91高清在线视频 | 欧美一a一片一级一片 | 一级欧美一级日韩片免费观看 | 狠狠操狠狠色 | 日韩一区不卡 | 亚洲综合小视频 | 日韩av.com | 久久专区 | 欧美在线播放一区 |